Subversion Repositories Scribus

Rev

Rev 1361 | Rev 1493 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1232 fschmid 1
#include "checkDocument.h"
2
#include "checkDocument.moc"
3
 
4
#include <qvariant.h>
5
#include <qheader.h>
6
#include <qlistview.h>
7
#include <qlayout.h>
8
#include <qtooltip.h>
9
#include <qwhatsthis.h>
10
#include <qimage.h>
11
#include <qpixmap.h>
1235 fschmid 12
#include <qmap.h>
1261 fschmid 13
#include <qlabel.h>
14
#include <qcombobox.h>
1268 fschmid 15
#include "scribus.h"
1232 fschmid 16
#include "scribusdoc.h"
17
#include "page.h"
18
extern QPixmap loadIcon(QString nam);
1268 fschmid 19
extern ScribusApp* ScApp;
1232 fschmid 20
 
21
static const unsigned char image0_data[] =
22
    {
23
        0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
24
        0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0b,
25
        0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0xac, 0x77, 0x26, 0x00, 0x00, 0x00,
26
        0xff, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0x75, 0x91, 0x31, 0x4e, 0xc3,
27
        0x40, 0x10, 0x45, 0x9f, 0xad, 0x2d, 0xe6, 0x0a, 0xdc, 0xc2, 0x8e, 0x44,
28
        0x91, 0x83, 0x50, 0x51, 0x91, 0x58, 0x29, 0x42, 0xba, 0x80, 0x28, 0x10,
29
        0x55, 0xe4, 0x02, 0x45, 0x74, 0x18, 0x24, 0x64, 0xdc, 0xe5, 0x28, 0x31,
30
        0x92, 0xd1, 0xe2, 0x74, 0x5c, 0x83, 0x72, 0x0a, 0x4b, 0x43, 0xe1, 0x78,
31
        0xb1, 0x22, 0xb1, 0xcd, 0x6a, 0x67, 0xde, 0xfc, 0x9d, 0x99, 0x1f, 0xf9,
32
        0xc6, 0x43, 0x07, 0x38, 0xd0, 0x4e, 0x11, 0x27, 0xff, 0xbe, 0xdd, 0x10,
33
        0xd0, 0x4e, 0x59, 0x2d, 0xdf, 0x8d, 0xd1, 0x29, 0xdf, 0xae, 0xa3, 0x71,
34
        0xde, 0x89, 0x13, 0x8a, 0x57, 0xec, 0xbb, 0xdd, 0x51, 0x1e, 0x2a, 0x00,
35
        0x14, 0x10, 0x20, 0x5b, 0x60, 0xd3, 0xf3, 0x35, 0x97, 0x57, 0x3f, 0x91,
36
        0x38, 0x21, 0xd6, 0x4e, 0x69, 0xdb, 0x82, 0xfa, 0xe2, 0x8c, 0x49, 0xbe,
37
        0x0d, 0xa0, 0x02, 0xe5, 0xa1, 0xe2, 0xe3, 0xf3, 0x29, 0x28, 0xc7, 0x37,
38
        0xcb, 0x9d, 0x95, 0x87, 0x0a, 0x5c, 0x8f, 0xc8, 0xb1, 0x85, 0x71, 0x41,
39
        0xb6, 0x28, 0x4c, 0x9c, 0xe0, 0x14, 0x05, 0xa0, 0xbe, 0xbb, 0x0d, 0xc0,
40
        0xe9, 0x0d, 0xfd, 0xb0, 0x31, 0x48, 0x48, 0x70, 0x02, 0x4e, 0xf2, 0xcd,
41
        0x5f, 0xdc, 0x09, 0xf1, 0xf0, 0x75, 0x50, 0x18, 0x81, 0x83, 0xd0, 0xa0,
42
        0x8c, 0x6f, 0x3c, 0x69, 0x32, 0x33, 0x0f, 0xb6, 0x07, 0xf3, 0x60, 0x96,
43
        0x6f, 0xcc, 0x1e, 0xb7, 0xb6, 0x07, 0x9b, 0x26, 0x4b, 0xf3, 0xb5, 0xc7,
44
        0x37, 0xbe, 0xdf, 0x73, 0x9a, 0xae, 0xc9, 0x8e, 0xc3, 0x28, 0xf0, 0x75,
45
        0xff, 0x80, 0x02, 0xab, 0x64, 0x46, 0x9a, 0xce, 0x83, 0x41, 0x91, 0x6f,
46
        0x7c, 0x70, 0x2a, 0x5b, 0x14, 0x36, 0x74, 0x2d, 0x08, 0xcf, 0x2f, 0xf3,
47
        0x68, 0xec, 0xe4, 0x2f, 0x90, 0x07, 0x8c, 0x36, 0xce, 0xc2, 0x57, 0x47,
48
        0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
49
    };
50
 
51
static const unsigned char image1_data[] =
52
    {
53
        0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
54
        0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0b,
55
        0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0xac, 0x77, 0x26, 0x00, 0x00, 0x00,
56
        0xfa, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0x75, 0x91, 0x31, 0x6e, 0x83,
57
        0x40, 0x10, 0x45, 0x1f, 0x68, 0x8b, 0xb9, 0x4a, 0x3a, 0x63, 0xc9, 0x05,
58
        0x25, 0xe7, 0x48, 0x15, 0x8c, 0x28, 0x88, 0x3b, 0xe7, 0x1a, 0xe9, 0x02,
59
        0x91, 0x2c, 0x42, 0xe7, 0x73, 0x50, 0x19, 0x24, 0xac, 0x35, 0xa5, 0xaf,
60
        0x91, 0x72, 0x0b, 0xa4, 0x49, 0x41, 0xb2, 0x46, 0x48, 0x99, 0x66, 0x35,
61
        0x33, 0x7f, 0xdf, 0xd7, 0xee, 0x0f, 0xec, 0x60, 0x61, 0x02, 0x0c, 0xb8,
62
        0xc9, 0x21, 0x46, 0xfe, 0xed, 0xcd, 0xdf, 0xc0, 0x4d, 0x8e, 0x43, 0xf1,
63
        0xa5, 0x2c, 0xaa, 0x3e, 0xbd, 0x06, 0xcb, 0xbd, 0x11, 0x23, 0x94, 0x9f,
64
        0xe8, 0x7d, 0x3c, 0x53, 0x57, 0xcd, 0x2f, 0x11, 0xc4, 0x40, 0x96, 0xa3,
65
        0xf1, 0xee, 0xc8, 0xf3, 0xcb, 0x77, 0x20, 0x46, 0x08, 0xdd, 0xe4, 0x18,
66
        0xc7, 0x92, 0x6e, 0xbc, 0xb3, 0x8d, 0x13, 0x2f, 0x74, 0x13, 0xd4, 0xa7,
67
        0x86, 0xfe, 0xfa, 0xee, 0xc9, 0xe1, 0x5b, 0x71, 0xd6, 0xba, 0x6a, 0xbc,
68
        0xb5, 0x18, 0x60, 0x75, 0x21, 0xcb, 0x4b, 0x15, 0x23, 0x18, 0x87, 0x03,
69
        0x03, 0x5d, 0xdf, 0x7a, 0xc1, 0xfa, 0x84, 0xf9, 0xb1, 0x21, 0x88, 0x5f,
70
        0xb0, 0x12, 0x6e, 0x77, 0xc9, 0x3c, 0x07, 0xc4, 0x08, 0x21, 0xb8, 0x07,
71
        0x61, 0x25, 0x9c, 0x89, 0x0f, 0x32, 0x76, 0xb0, 0x44, 0x9b, 0x54, 0xed,
72
        0x80, 0x5e, 0x3a, 0xd4, 0x0e, 0xa8, 0x6a, 0xa2, 0xaa, 0x89, 0x5e, 0x3a,
73
        0x34, 0xde, 0x14, 0x6a, 0x3b, 0x8b, 0x1d, 0xec, 0xfc, 0x1b, 0x51, 0x74,
74
        0x24, 0xcb, 0x53, 0xef, 0x70, 0xbb, 0xb6, 0x74, 0x7d, 0xcb, 0xa1, 0x48,
75
        0x79, 0x8a, 0xf6, 0x3e, 0xa0, 0xc0, 0x0e, 0xd6, 0x27, 0x95, 0xe5, 0xa5,
76
        0x82, 0x00, 0x0e, 0x41, 0xf8, 0xa8, 0xf6, 0xc1, 0x32, 0xc9, 0x1f, 0x9e,
77
        0x1c, 0x9d, 0xca, 0x9e, 0x4f, 0x38, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x49,
78
        0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
79
    };
80
 
81
static const unsigned char image2_data[] =
82
    {
83
        0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
84
        0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0b,
85
        0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0xac, 0x77, 0x26, 0x00, 0x00, 0x01,
86
        0x02, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0x75, 0x91, 0xb1, 0x4a, 0xc4,
87
        0x40, 0x10, 0x86, 0xbf, 0x84, 0x29, 0xc6, 0x37, 0xb8, 0xd6, 0xf2, 0xca,
88
        0x10, 0xae, 0xc8, 0x2b, 0xf8, 0x0a, 0xa9, 0x84, 0xa4, 0x08, 0xd8, 0x1c,
89
        0xa4, 0xb4, 0x13, 0xbb, 0x80, 0x85, 0x4a, 0xe0, 0x12, 0xb8, 0x46, 0x4b,
90
        0x5b, 0x3b, 0xeb, 0xc0, 0x49, 0xd8, 0xd2, 0x57, 0x48, 0x69, 0x21, 0xb8,
91
        0xc5, 0x42, 0x2c, 0x72, 0xc9, 0xad, 0x88, 0xdb, 0x2c, 0x33, 0x3b, 0xf3,
92
        0xfd, 0x3f, 0xfb, 0x07, 0xfd, 0xa1, 0x07, 0x07, 0x08, 0x58, 0x67, 0x51,
93
        0xd1, 0x7f, 0x6b, 0x99, 0x1b, 0xd6, 0x59, 0xae, 0x9b, 0xab, 0x11, 0xef,
94
        0x54, 0x45, 0x1b, 0xf8, 0xef, 0xa2, 0xa2, 0x74, 0xf2, 0x38, 0xbe, 0x36,
95
        0x1f, 0x0c, 0xb9, 0x01, 0x01, 0x1c, 0xa8, 0x40, 0x59, 0x67, 0x63, 0xba,
96
        0x4d, 0x58, 0x7f, 0xa5, 0x81, 0x8a, 0x12, 0x5a, 0x67, 0x79, 0xb9, 0x37,
97
        0x3c, 0xed, 0x2c, 0x7d, 0x12, 0x79, 0x16, 0x60, 0x28, 0x0c, 0xcf, 0x77,
98
        0xdd, 0x42, 0x0e, 0x6f, 0xf7, 0xe5, 0x38, 0xe4, 0x06, 0x3d, 0x4a, 0xeb,
99
        0x91, 0x3c, 0x2b, 0x7c, 0x16, 0x86, 0xb2, 0xce, 0x46, 0x15, 0x45, 0xbe,
100
        0x9d, 0x05, 0x81, 0xb8, 0x3b, 0x59, 0xf0, 0x6f, 0xeb, 0x26, 0x88, 0x75,
101
        0x96, 0xd0, 0xf7, 0xe8, 0x0f, 0xaa, 0x40, 0xbf, 0x89, 0xa6, 0x1a, 0x50,
102
        0x51, 0xc2, 0x5f, 0x04, 0x6f, 0xe1, 0x6d, 0x13, 0x4d, 0x53, 0x3e, 0xb9,
103
        0x2a, 0xda, 0x60, 0x55, 0x47, 0x7f, 0x88, 0xca, 0x64, 0xed, 0x7c, 0x9f,
104
        0x50, 0xe5, 0xed, 0xe9, 0x37, 0xd2, 0x6d, 0xc4, 0xbc, 0x60, 0x1d, 0xc4,
105
        0xef, 0x86, 0xb8, 0x33, 0xac, 0x9a, 0x88, 0x8b, 0x62, 0xbd, 0x04, 0x14,
106
        0xf4, 0x87, 0x7e, 0x49, 0xaa, 0xac, 0xb3, 0x71, 0x56, 0x38, 0x13, 0xe5,
107
        0xe6, 0xf2, 0x21, 0xf0, 0x93, 0xfc, 0x01, 0x78, 0x2a, 0x84, 0x98, 0x28,
108
        0xe8, 0xa9, 0x58, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae,
109
        0x42, 0x60, 0x82
110
    };
111
 
112
CheckDocument::CheckDocument( QWidget* parent, bool modal )  : QDialog( parent, "checkDocument", modal, 0 )
113
{
114
        QImage img;
115
        img.loadFromData( image0_data, sizeof( image0_data ), "PNG" );
116
        graveError = img;
117
        img.loadFromData( image1_data, sizeof( image1_data ), "PNG" );
118
        onlyWarning = img;
119
        img.loadFromData( image2_data, sizeof( image2_data ), "PNG" );
120
        noErrors = img;
121
        setIcon(loadIcon("AppIcon.png"));
122
        checkDocumentLayout = new QVBoxLayout( this, 10, 5, "checkDocumentLayout");
123
 
1261 fschmid 124
        layout1 = new QHBoxLayout( 0, 0, 5, "layout1");
125
        textLabel1 = new QLabel( this, "textLabel1" );
126
        textLabel1->setText( tr( "Current Profile:" ) );
127
        layout1->addWidget( textLabel1 );
128
        curCheckProfile = new QComboBox( true, this, "Profiles" );
129
        curCheckProfile->setEditable(false);
130
        layout1->addWidget( curCheckProfile );
131
        checkDocumentLayout->addLayout( layout1 );
1232 fschmid 132
        reportDisplay = new QListView( this, "reportDisplay" );
133
        reportDisplay->addColumn( tr( "Items" ) );
134
        reportDisplay->header()->setClickEnabled( false, reportDisplay->header()->count() - 1 );
135
        reportDisplay->header()->setResizeEnabled( false, reportDisplay->header()->count() - 1 );
136
        reportDisplay->addColumn( tr( "Problems" ) );
137
        reportDisplay->header()->setClickEnabled( false, reportDisplay->header()->count() - 1 );
138
        reportDisplay->header()->setResizeEnabled( false, reportDisplay->header()->count() - 1 );
139
        reportDisplay->setSorting(-1);
140
        checkDocumentLayout->addWidget( reportDisplay );
141
        languageChange();
1235 fschmid 142
        itemMap.clear();
1268 fschmid 143
        pageMap.clear();
144
        templatePageMap.clear();
145
        templateItemMap.clear();
1232 fschmid 146
        resize( QSize(306, 259).expandedTo(minimumSizeHint()) );
147
        clearWState( WState_Polished );
1261 fschmid 148
        connect(curCheckProfile, SIGNAL(activated(const QString&)), this, SLOT(newScan(const QString&)));
1232 fschmid 149
}
150
 
151
void CheckDocument::closeEvent(QCloseEvent *ce)
152
{
1265 cbradney 153
        emit closePal(false);
1367 cbradney 154
        QDialog::closeEvent(ce);
1232 fschmid 155
}
156
 
1367 cbradney 157
void CheckDocument::keyPressEvent(QKeyEvent *ke)
158
{
159
        if (ke->key() == Key_Escape)
160
                close();
161
        else
162
                QDialog::keyPressEvent(ke);
163
}
164
 
1235 fschmid 165
void CheckDocument::slotSelect(QListViewItem* ite)
166
{
167
        if (itemMap.contains(ite))
1244 fschmid 168
        {
1268 fschmid 169
                if (document->TemplateMode)
170
                        ScApp->ActWin->muster->close();
171
                emit selectElement(document->DocItems.at(itemMap[ite])->OwnPage, itemMap[ite]);
1244 fschmid 172
                return;
173
        }
174
        if (pageMap.contains(ite))
175
        {
1268 fschmid 176
                if (document->TemplateMode)
177
                        ScApp->ActWin->muster->close();
1244 fschmid 178
                emit selectPage(pageMap[ite]);
179
                return;
180
        }
1268 fschmid 181
        if (templatePageMap.contains(ite))
182
        {
183
                emit selectTemplatePage(templatePageMap[ite]);
184
                return;
185
        }
186
        if (templateItemMap.contains(ite))
187
        {
188
                if (!document->TemplateMode)
189
                        emit selectTemplatePage(document->MasterItems.at(templateItemMap[ite])->OnMasterPage);
190
                emit selectElement(-1, templateItemMap[ite]);
191
                return;
192
        }
1235 fschmid 193
}
194
 
1261 fschmid 195
void CheckDocument::newScan(const QString& name)
1232 fschmid 196
{
197
        clearErrorList();
1261 fschmid 198
        document->curCheckProfile = name;
1232 fschmid 199
        emit rescan();
200
}
201
 
202
void CheckDocument::clearErrorList()
203
{
1235 fschmid 204
        disconnect(reportDisplay, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(slotSelect(QListViewItem*)));
1232 fschmid 205
        reportDisplay->clear();
1235 fschmid 206
        itemMap.clear();
1244 fschmid 207
        pageMap.clear();
1268 fschmid 208
        templatePageMap.clear();
209
        templateItemMap.clear();
1232 fschmid 210
}
211
 
212
void CheckDocument::buildErrorList(ScribusDoc *doc)
213
{
1235 fschmid 214
        document = doc;
1261 fschmid 215
        disconnect(curCheckProfile, SIGNAL(activated(const QString&)), this, SLOT(newScan(const QString&)));
216
        curCheckProfile->clear();
217
        QMap<QString, checkerPrefs>::Iterator it;
218
        for (it = doc->checkerProfiles.begin(); it != doc->checkerProfiles.end(); ++it)
219
        {
220
                curCheckProfile->insertItem(it.key());
221
        }
222
        curCheckProfile->setCurrentText(doc->curCheckProfile);
223
        connect(curCheckProfile, SIGNAL(activated(const QString&)), this, SLOT(newScan(const QString&)));
1232 fschmid 224
        QString missingGlyph = tr("Glyphs missing");
225
        QString textOverflow = tr("Text overflow");
226
        QString notOnPage = tr("Object is not on a Page");
227
        QString missingImg = tr("Missing Image");
1261 fschmid 228
        QString lowDPI = tr("Image has a DPI-Value less than %1 DPI").arg(qRound(doc->checkerProfiles[doc->curCheckProfile].minResolution));
1235 fschmid 229
        QString transpar = tr("Object has transparency");
1284 fschmid 230
        QString annot = tr("Object is a PDF-Annotation or Field");
231
        QString rasterPDF = tr("Object is a placed PDF");
1232 fschmid 232
        reportDisplay->clear();
233
        reportDisplay->setSorting(-1);
1235 fschmid 234
        itemMap.clear();
1244 fschmid 235
        pageMap.clear();
1232 fschmid 236
        QListViewItem * item = new QListViewItem( reportDisplay, 0 );
237
        item->setText( 0, tr( "Document" ) );
238
        if ((doc->docItemErrors.count() == 0) && (doc->masterItemErrors.count() == 0))
239
        {
240
                item->setPixmap( 0, noErrors );
241
                item->setText( 1, tr( "No Problems found" ) );
242
        }
243
        else
244
        {
245
                bool hasError = false;
246
                bool hasGraveError = false;
247
                QListViewItem * pagep = 0;
248
                for (int a = 0; a < static_cast<int>(doc->MasterPages.count()); ++a)
249
                {
250
                        QString tmp;
251
                        hasError = false;
252
                        bool pageGraveError = false;
253
                        QListViewItem * page = new QListViewItem( item, pagep );
1268 fschmid 254
                        templatePageMap.insert(page, doc->MasterPages.at(a)->PageNam);
1232 fschmid 255
                        pagep = page;
256
                        QMap<int, errorCodes>::Iterator it2;
257
                        for (it2 = doc->masterItemErrors.begin(); it2 != doc->masterItemErrors.end(); ++it2)
258
                        {
259
                                if ((doc->MasterItems.at(it2.key())->OwnPage == a) || (doc->MasterItems.at(it2.key())->OnMasterPage == doc->MasterPages.at(a)->PageNam))
260
                                {
261
                                        hasError = true;
262
                                        bool itemError = false;
263
                                        QListViewItem * object = new QListViewItem( page, 0 );
1268 fschmid 264
                                        templateItemMap.insert(object, doc->MasterItems.at(it2.key())->ItemNr);
1361 tsoots 265
                                        object->setText(0, doc->MasterItems.at(it2.key())->itemName());
1232 fschmid 266
                                        errorCodes::Iterator it3;
267
                                        if (it2.data().count() == 1)
268
                                        {
269
                                                it3 = it2.data().begin();
270
                                                switch (it3.key())
271
                                                {
272
                                                case 1:
273
                                                        object->setText(1, missingGlyph);
274
                                                        hasGraveError = true;
275
                                                        pageGraveError = true;
276
                                                        itemError = true;
277
                                                        break;
278
                                                case 2:
279
                                                        object->setText(1, textOverflow);
280
                                                        break;
281
                                                case 3:
282
                                                        object->setText(1, notOnPage);
283
                                                        break;
284
                                                case 4:
285
                                                        object->setText(1, missingImg);
286
                                                        hasGraveError = true;
287
                                                        pageGraveError = true;
288
                                                        itemError = true;
289
                                                        break;
290
                                                case 5:
291
                                                        object->setText(1, lowDPI);
292
                                                        break;
1235 fschmid 293
                                                case 6:
294
                                                        object->setText(1, transpar);
295
                                                        hasGraveError = true;
296
                                                        pageGraveError = true;
297
                                                        itemError = true;
298
                                                        break;
1284 fschmid 299
                                                case 7:
300
                                                        object->setText(1, annot);
301
                                                        break;
302
                                                case 8:
303
                                                        object->setText(1, rasterPDF);
304
                                                        break;
1232 fschmid 305
                                                }
306
                                        }
307
                                        else
308
                                        {
309
                                                for (it3 = it2.data().begin(); it3 != it2.data().end(); ++it3)
310
                                                {
311
                                                        QListViewItem * errorText = new QListViewItem( object, 0 );
312
                                                        switch (it3.key())
313
                                                        {
314
                                                        case 1:
315
                                                                errorText->setText(1, missingGlyph);
316
                                                                errorText->setPixmap( 0, graveError );
317
                                                                hasGraveError = true;
318
                                                                pageGraveError = true;
319
                                                                itemError = true;
320
                                                                break;
321
                                                        case 2:
322
                                                                errorText->setText(1, textOverflow);
323
                                                                errorText->setPixmap( 0, onlyWarning );
324
                                                                break;
325
                                                        case 3:
326
                                                                errorText->setText(1, notOnPage);
327
                                                                errorText->setPixmap( 0, onlyWarning );
328
                                                                break;
329
                                                        case 4:
330
                                                                errorText->setText(1, missingImg);
331
                                                                errorText->setPixmap( 0, graveError );
332
                                                                hasGraveError = true;
333
                                                                pageGraveError = true;
334
                                                                itemError = true;
335
                                                                break;
336
                                                        case 5:
337
                                                                errorText->setText(1, lowDPI);
338
                                                                errorText->setPixmap( 0, onlyWarning );
339
                                                                break;
1235 fschmid 340
                                                        case 6:
341
                                                                errorText->setText(1, transpar);
342
                                                                errorText->setPixmap( 0, graveError );
343
                                                                hasGraveError = true;
344
                                                                pageGraveError = true;
345
                                                                itemError = true;
346
                                                                break;
1284 fschmid 347
                                                        case 7:
348
                                                                errorText->setText(1, annot);
349
                                                                errorText->setPixmap( 0, onlyWarning );
350
                                                                break;
351
                                                        case 8:
352
                                                                errorText->setText(1, rasterPDF);
353
                                                                errorText->setPixmap( 0, onlyWarning );
354
                                                                break;
1232 fschmid 355
                                                        }
356
                                                }
1268 fschmid 357
                                                object->setOpen( true );
1232 fschmid 358
                                        }
359
                                        if (itemError)
360
                                                object->setPixmap( 0, graveError );
361
                                        else
362
                                                object->setPixmap( 0, onlyWarning );
363
                                }
364
                        }
365
                        if (hasError)
366
                        {
367
                                if (pageGraveError)
368
                                        page->setPixmap( 0, graveError );
369
                                else
370
                                        page->setPixmap( 0, onlyWarning );
1268 fschmid 371
                                page->setOpen( true );
1232 fschmid 372
                        }
373
                        else
374
                                page->setPixmap( 0, noErrors );
375
                        page->setText(0, doc->MasterPages.at(a)->PageNam);
376
                }
377
                for (int a = 0; a < static_cast<int>(doc->DocPages.count()); ++a)
378
                {
379
                        QString tmp;
380
                        hasError = false;
381
                        bool pageGraveError = false;
382
                        QListViewItem * page = new QListViewItem( item, pagep );
1244 fschmid 383
                        pageMap.insert(page, a);
1232 fschmid 384
                        pagep = page;
385
                        QMap<int, errorCodes>::Iterator it2;
386
                        for (it2 = doc->docItemErrors.begin(); it2 != doc->docItemErrors.end(); ++it2)
387
                        {
388
                                if (doc->DocItems.at(it2.key())->OwnPage == a)
389
                                {
390
                                        hasError = true;
391
                                        bool itemError = false;
392
                                        QListViewItem * object = new QListViewItem( page, 0 );
1361 tsoots 393
                                        object->setText(0, doc->DocItems.at(it2.key())->itemName());
1235 fschmid 394
                                        itemMap.insert(object, doc->DocItems.at(it2.key())->ItemNr);
1232 fschmid 395
                                        errorCodes::Iterator it3;
396
                                        if (it2.data().count() == 1)
397
                                        {
398
                                                it3 = it2.data().begin();
399
                                                switch (it3.key())
400
                                                {
401
                                                case 1:
402
                                                        object->setText(1, missingGlyph);
403
                                                        hasGraveError = true;
404
                                                        pageGraveError = true;
405
                                                        itemError = true;
406
                                                        break;
407
                                                case 2:
408
                                                        object->setText(1, textOverflow);
409
                                                        break;
410
                                                case 3:
411
                                                        object->setText(1, notOnPage);
412
                                                        break;
413
                                                case 4:
414
                                                        object->setText(1, missingImg);
415
                                                        hasGraveError = true;
416
                                                        pageGraveError = true;
417
                                                        itemError = true;
418
                                                        break;
419
                                                case 5:
420
                                                        object->setText(1, lowDPI);
421
                                                        break;
1235 fschmid 422
                                                case 6:
423
                                                        object->setText(1, transpar);
424
                                                        hasGraveError = true;
425
                                                        pageGraveError = true;
426
                                                        itemError = true;
427
                                                        break;
1284 fschmid 428
                                                case 7:
429
                                                        object->setText(1, annot);
430
                                                        break;
431
                                                case 8:
432
                                                        object->setText(1, rasterPDF);
433
                                                        break;
1232 fschmid 434
                                                }
435
                                        }
436
                                        else
437
                                        {
438
                                                for (it3 = it2.data().begin(); it3 != it2.data().end(); ++it3)
439
                                                {
440
                                                        QListViewItem * errorText = new QListViewItem( object, 0 );
441
                                                        switch (it3.key())
442
                                                        {
443
                                                        case 1:
444
                                                                errorText->setText(1, missingGlyph);
445
                                                                errorText->setPixmap( 0, graveError );
446
                                                                hasGraveError = true;
447
                                                                pageGraveError = true;
448
                                                                itemError = true;
449
                                                                break;
450
                                                        case 2:
451
                                                                errorText->setText(1, textOverflow);
452
                                                                errorText->setPixmap( 0, onlyWarning );
453
                                                                break;
454
                                                        case 3:
455
                                                                errorText->setText(1, notOnPage);
456
                                                                errorText->setPixmap( 0, onlyWarning );
457
                                                                break;
458
                                                        case 4:
459
                                                                errorText->setText(1, missingImg);
460
                                                                errorText->setPixmap( 0, graveError );
461
                                                                hasGraveError = true;
462
                                                                pageGraveError = true;
463
                                                                itemError = true;
464
                                                                break;
465
                                                        case 5:
466
                                                                errorText->setText(1, lowDPI);
467
                                                                errorText->setPixmap( 0, onlyWarning );
468
                                                                break;
1235 fschmid 469
                                                        case 6:
470
                                                                errorText->setText(1, transpar);
471
                                                                errorText->setPixmap( 0, graveError );
472
                                                                hasGraveError = true;
473
                                                                pageGraveError = true;
474
                                                                itemError = true;
475
                                                                break;
1284 fschmid 476
                                                        case 7:
477
                                                                errorText->setText(1, annot);
478
                                                                errorText->setPixmap( 0, onlyWarning );
479
                                                                break;
480
                                                        case 8:
481
                                                                errorText->setText(1, rasterPDF);
482
                                                                errorText->setPixmap( 0, onlyWarning );
483
                                                                break;
1232 fschmid 484
                                                        }
485
                                                }
1268 fschmid 486
                                                object->setOpen( true );
1232 fschmid 487
                                        }
488
                                        if (itemError)
489
                                                object->setPixmap( 0, graveError );
490
                                        else
491
                                                object->setPixmap( 0, onlyWarning );
492
                                }
493
                        }
494
                        if (hasError)
495
                        {
496
                                if (pageGraveError)
497
                                        page->setPixmap( 0, graveError );
498
                                else
499
                                        page->setPixmap( 0, onlyWarning );
1268 fschmid 500
                                page->setOpen( true );
1232 fschmid 501
                        }
502
                        else
503
                                page->setPixmap( 0, noErrors );
504
                        page->setText(0, tr("Page ")+tmp.setNum(a+1));
505
                }
506
                QMap<int, errorCodes>::Iterator it2;
507
                bool hasfreeItems = false;
508
                for (it2 = doc->docItemErrors.begin(); it2 != doc->docItemErrors.end(); ++it2)
509
                {
510
                        if (doc->DocItems.at(it2.key())->OwnPage == -1)
511
                        {
512
                                hasfreeItems = true;
513
                                break;
514
                        }
515
                }
516
                if (hasfreeItems)
517
                {
518
                        bool hasError = false;
519
                        bool pageGraveError = false;
520
                        QListViewItem * page = new QListViewItem( item, pagep );
521
                        pagep = page;
522
                        for (it2 = doc->docItemErrors.begin(); it2 != doc->docItemErrors.end(); ++it2)
523
                        {
524
                                if (doc->DocItems.at(it2.key())->OwnPage == -1)
525
                                {
526
                                        hasError = true;
527
                                        QListViewItem * object = new QListViewItem( page, 0 );
1361 tsoots 528
                                        object->setText(0, doc->DocItems.at(it2.key())->itemName());
1235 fschmid 529
                                        itemMap.insert(object, doc->DocItems.at(it2.key())->ItemNr);
1232 fschmid 530
                                        errorCodes::Iterator it3;
531
                                        if (it2.data().count() == 1)
532
                                        {
533
                                                it3 = it2.data().begin();
534
                                                switch (it3.key())
535
                                                {
536
                                                case 1:
537
                                                        object->setText(1, missingGlyph);
538
                                                        hasGraveError = true;
539
                                                        pageGraveError = true;
540
                                                        break;
541
                                                case 2:
542
                                                        object->setText(1, textOverflow);
543
                                                        break;
544
                                                case 3:
545
                                                        object->setText(1, notOnPage);
546
                                                        break;
547
                                                case 4:
548
                                                        object->setText(1, missingImg);
549
                                                        hasGraveError = true;
550
                                                        pageGraveError = true;
551
                                                        break;
552
                                                case 5:
553
                                                        object->setText(1, lowDPI);
554
                                                        break;
1235 fschmid 555
                                                case 6:
556
                                                        object->setText(1, transpar);
557
                                                        hasGraveError = true;
558
                                                        pageGraveError = true;
559
                                                        break;
1284 fschmid 560
                                                case 7:
561
                                                        object->setText(1, annot);
562
                                                        break;
563
                                                case 8:
564
                                                        object->setText(1, rasterPDF);
565
                                                        break;
1232 fschmid 566
                                                }
567
                                        }
568
                                        else
569
                                        {
570
                                                for (it3 = it2.data().begin(); it3 != it2.data().end(); ++it3)
571
                                                {
572
                                                        QListViewItem * errorText = new QListViewItem( object, 0 );
573
                                                        switch (it3.key())
574
                                                        {
575
                                                        case 1:
576
                                                                errorText->setText(1, missingGlyph);
577
                                                                errorText->setPixmap( 0, graveError );
578
                                                                hasGraveError = true;
579
                                                                pageGraveError = true;
580
                                                                break;
581
                                                        case 2:
582
                                                                errorText->setText(1, textOverflow);
583
                                                                errorText->setPixmap( 0, onlyWarning );
584
                                                                break;
585
                                                        case 3:
586
                                                                errorText->setText(1, notOnPage);
587
                                                                errorText->setPixmap( 0, onlyWarning );
588
                                                                break;
589
                                                        case 4:
590
                                                                errorText->setText(1, missingImg);
591
                                                                errorText->setPixmap( 0, graveError );
592
                                                                hasGraveError = true;
593
                                                                pageGraveError = true;
594
                                                                break;
595
                                                        case 5:
596
                                                                errorText->setText(1, lowDPI);
597
                                                                errorText->setPixmap( 0, onlyWarning );
598
                                                                break;
1235 fschmid 599
                                                        case 6:
600
                                                                errorText->setText(1, transpar);
601
                                                                errorText->setPixmap( 0, graveError );
602
                                                                hasGraveError = true;
603
                                                                pageGraveError = true;
604
                                                                break;
1284 fschmid 605
                                                        case 7:
606
                                                                errorText->setText(1, annot);
607
                                                                errorText->setPixmap( 0, onlyWarning );
608
                                                                break;
609
                                                        case 8:
610
                                                                errorText->setText(1, rasterPDF);
611
                                                                errorText->setPixmap( 0, onlyWarning );
612
                                                                break;
1232 fschmid 613
                                                        }
614
                                                }
1268 fschmid 615
                                                object->setOpen( true );
1232 fschmid 616
                                        }
617
                                        if (pageGraveError)
618
                                                object->setPixmap( 0, graveError );
619
                                        else
620
                                                object->setPixmap( 0, onlyWarning );
621
                                }
622
                        }
623
                        if (hasError)
624
                        {
625
                                if (pageGraveError)
626
                                        page->setPixmap( 0, graveError );
627
                                else
628
                                        page->setPixmap( 0, onlyWarning );
1268 fschmid 629
                                page->setOpen( true );
1232 fschmid 630
                        }
631
                        else
632
                                page->setPixmap( 0, noErrors );
633
                        page->setText(0, tr("Free Objects"));
634
                }
635
                if (hasGraveError)
636
                        item->setPixmap( 0, graveError );
637
                else
638
                        item->setPixmap( 0, onlyWarning );
639
                item->setText( 1, tr( "Problems found" ) );
640
                item->setOpen( true );
641
        }
1235 fschmid 642
        connect(reportDisplay, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(slotSelect(QListViewItem*)));
1232 fschmid 643
}
644
 
645
/*
646
 *  Sets the strings of the subwidgets using the current
647
 *  language.
648
 */
649
void CheckDocument::languageChange()
650
{
1245 fschmid 651
        setCaption( tr( "Preflight Verifier" ) );
1232 fschmid 652
        reportDisplay->header()->setLabel( 0, tr( "Items" ) );
653
        reportDisplay->header()->setLabel( 1, tr( "Problems" ) );
654
}
655