Subversion Repositories Scribus

Rev

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