Subversion Repositories Scribus

Rev

Rev 1265 | Rev 1284 | 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);
1232 fschmid 154
        ce->accept();
155
}
156
 
1235 fschmid 157
void CheckDocument::slotSelect(QListViewItem* ite)
158
{
159
        if (itemMap.contains(ite))
1244 fschmid 160
        {
1268 fschmid 161
                if (document->TemplateMode)
162
                        ScApp->ActWin->muster->close();
163
                emit selectElement(document->DocItems.at(itemMap[ite])->OwnPage, itemMap[ite]);
1244 fschmid 164
                return;
165
        }
166
        if (pageMap.contains(ite))
167
        {
1268 fschmid 168
                if (document->TemplateMode)
169
                        ScApp->ActWin->muster->close();
1244 fschmid 170
                emit selectPage(pageMap[ite]);
171
                return;
172
        }
1268 fschmid 173
        if (templatePageMap.contains(ite))
174
        {
175
                emit selectTemplatePage(templatePageMap[ite]);
176
                return;
177
        }
178
        if (templateItemMap.contains(ite))
179
        {
180
                if (!document->TemplateMode)
181
                        emit selectTemplatePage(document->MasterItems.at(templateItemMap[ite])->OnMasterPage);
182
                emit selectElement(-1, templateItemMap[ite]);
183
                return;
184
        }
1235 fschmid 185
}
186
 
1261 fschmid 187
void CheckDocument::newScan(const QString& name)
1232 fschmid 188
{
189
        clearErrorList();
1261 fschmid 190
        document->curCheckProfile = name;
1232 fschmid 191
        emit rescan();
192
}
193
 
194
void CheckDocument::clearErrorList()
195
{
1235 fschmid 196
        disconnect(reportDisplay, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(slotSelect(QListViewItem*)));
1232 fschmid 197
        reportDisplay->clear();
1235 fschmid 198
        itemMap.clear();
1244 fschmid 199
        pageMap.clear();
1268 fschmid 200
        templatePageMap.clear();
201
        templateItemMap.clear();
1232 fschmid 202
}
203
 
204
void CheckDocument::buildErrorList(ScribusDoc *doc)
205
{
1235 fschmid 206
        document = doc;
1261 fschmid 207
        disconnect(curCheckProfile, SIGNAL(activated(const QString&)), this, SLOT(newScan(const QString&)));
208
        curCheckProfile->clear();
209
        QMap<QString, checkerPrefs>::Iterator it;
210
        for (it = doc->checkerProfiles.begin(); it != doc->checkerProfiles.end(); ++it)
211
        {
212
                curCheckProfile->insertItem(it.key());
213
        }
214
        curCheckProfile->setCurrentText(doc->curCheckProfile);
215
        connect(curCheckProfile, SIGNAL(activated(const QString&)), this, SLOT(newScan(const QString&)));
1232 fschmid 216
        QString missingGlyph = tr("Glyphs missing");
217
        QString textOverflow = tr("Text overflow");
218
        QString notOnPage = tr("Object is not on a Page");
219
        QString missingImg = tr("Missing Image");
1261 fschmid 220
        QString lowDPI = tr("Image has a DPI-Value less than %1 DPI").arg(qRound(doc->checkerProfiles[doc->curCheckProfile].minResolution));
1235 fschmid 221
        QString transpar = tr("Object has transparency");
1232 fschmid 222
        reportDisplay->clear();
223
        reportDisplay->setSorting(-1);
1235 fschmid 224
        itemMap.clear();
1244 fschmid 225
        pageMap.clear();
1232 fschmid 226
        QListViewItem * item = new QListViewItem( reportDisplay, 0 );
227
        item->setText( 0, tr( "Document" ) );
228
        if ((doc->docItemErrors.count() == 0) && (doc->masterItemErrors.count() == 0))
229
        {
230
                item->setPixmap( 0, noErrors );
231
                item->setText( 1, tr( "No Problems found" ) );
232
        }
233
        else
234
        {
235
                bool hasError = false;
236
                bool hasGraveError = false;
237
                QListViewItem * pagep = 0;
238
                for (int a = 0; a < static_cast<int>(doc->MasterPages.count()); ++a)
239
                {
240
                        QString tmp;
241
                        hasError = false;
242
                        bool pageGraveError = false;
243
                        QListViewItem * page = new QListViewItem( item, pagep );
1268 fschmid 244
                        templatePageMap.insert(page, doc->MasterPages.at(a)->PageNam);
1232 fschmid 245
                        pagep = page;
246
                        QMap<int, errorCodes>::Iterator it2;
247
                        for (it2 = doc->masterItemErrors.begin(); it2 != doc->masterItemErrors.end(); ++it2)
248
                        {
249
                                if ((doc->MasterItems.at(it2.key())->OwnPage == a) || (doc->MasterItems.at(it2.key())->OnMasterPage == doc->MasterPages.at(a)->PageNam))
250
                                {
251
                                        hasError = true;
252
                                        bool itemError = false;
253
                                        QListViewItem * object = new QListViewItem( page, 0 );
1268 fschmid 254
                                        templateItemMap.insert(object, doc->MasterItems.at(it2.key())->ItemNr);
1232 fschmid 255
                                        object->setText(0, doc->MasterItems.at(it2.key())->AnName);
256
                                        errorCodes::Iterator it3;
257
                                        if (it2.data().count() == 1)
258
                                        {
259
                                                it3 = it2.data().begin();
260
                                                switch (it3.key())
261
                                                {
262
                                                case 1:
263
                                                        object->setText(1, missingGlyph);
264
                                                        hasGraveError = true;
265
                                                        pageGraveError = true;
266
                                                        itemError = true;
267
                                                        break;
268
                                                case 2:
269
                                                        object->setText(1, textOverflow);
270
                                                        break;
271
                                                case 3:
272
                                                        object->setText(1, notOnPage);
273
                                                        break;
274
                                                case 4:
275
                                                        object->setText(1, missingImg);
276
                                                        hasGraveError = true;
277
                                                        pageGraveError = true;
278
                                                        itemError = true;
279
                                                        break;
280
                                                case 5:
281
                                                        object->setText(1, lowDPI);
282
                                                        break;
1235 fschmid 283
                                                case 6:
284
                                                        object->setText(1, transpar);
285
                                                        hasGraveError = true;
286
                                                        pageGraveError = true;
287
                                                        itemError = true;
288
                                                        break;
1232 fschmid 289
                                                }
290
                                        }
291
                                        else
292
                                        {
293
                                                for (it3 = it2.data().begin(); it3 != it2.data().end(); ++it3)
294
                                                {
295
                                                        QListViewItem * errorText = new QListViewItem( object, 0 );
296
                                                        switch (it3.key())
297
                                                        {
298
                                                        case 1:
299
                                                                errorText->setText(1, missingGlyph);
300
                                                                errorText->setPixmap( 0, graveError );
301
                                                                hasGraveError = true;
302
                                                                pageGraveError = true;
303
                                                                itemError = true;
304
                                                                break;
305
                                                        case 2:
306
                                                                errorText->setText(1, textOverflow);
307
                                                                errorText->setPixmap( 0, onlyWarning );
308
                                                                break;
309
                                                        case 3:
310
                                                                errorText->setText(1, notOnPage);
311
                                                                errorText->setPixmap( 0, onlyWarning );
312
                                                                break;
313
                                                        case 4:
314
                                                                errorText->setText(1, missingImg);
315
                                                                errorText->setPixmap( 0, graveError );
316
                                                                hasGraveError = true;
317
                                                                pageGraveError = true;
318
                                                                itemError = true;
319
                                                                break;
320
                                                        case 5:
321
                                                                errorText->setText(1, lowDPI);
322
                                                                errorText->setPixmap( 0, onlyWarning );
323
                                                                break;
1235 fschmid 324
                                                        case 6:
325
                                                                errorText->setText(1, transpar);
326
                                                                errorText->setPixmap( 0, graveError );
327
                                                                hasGraveError = true;
328
                                                                pageGraveError = true;
329
                                                                itemError = true;
330
                                                                break;
1232 fschmid 331
                                                        }
332
                                                }
1268 fschmid 333
                                                object->setOpen( true );
1232 fschmid 334
                                        }
335
                                        if (itemError)
336
                                                object->setPixmap( 0, graveError );
337
                                        else
338
                                                object->setPixmap( 0, onlyWarning );
339
                                }
340
                        }
341
                        if (hasError)
342
                        {
343
                                if (pageGraveError)
344
                                        page->setPixmap( 0, graveError );
345
                                else
346
                                        page->setPixmap( 0, onlyWarning );
1268 fschmid 347
                                page->setOpen( true );
1232 fschmid 348
                        }
349
                        else
350
                                page->setPixmap( 0, noErrors );
351
                        page->setText(0, doc->MasterPages.at(a)->PageNam);
352
                }
353
                for (int a = 0; a < static_cast<int>(doc->DocPages.count()); ++a)
354
                {
355
                        QString tmp;
356
                        hasError = false;
357
                        bool pageGraveError = false;
358
                        QListViewItem * page = new QListViewItem( item, pagep );
1244 fschmid 359
                        pageMap.insert(page, a);
1232 fschmid 360
                        pagep = page;
361
                        QMap<int, errorCodes>::Iterator it2;
362
                        for (it2 = doc->docItemErrors.begin(); it2 != doc->docItemErrors.end(); ++it2)
363
                        {
364
                                if (doc->DocItems.at(it2.key())->OwnPage == a)
365
                                {
366
                                        hasError = true;
367
                                        bool itemError = false;
368
                                        QListViewItem * object = new QListViewItem( page, 0 );
369
                                        object->setText(0, doc->DocItems.at(it2.key())->AnName);
1235 fschmid 370
                                        itemMap.insert(object, doc->DocItems.at(it2.key())->ItemNr);
1232 fschmid 371
                                        errorCodes::Iterator it3;
372
                                        if (it2.data().count() == 1)
373
                                        {
374
                                                it3 = it2.data().begin();
375
                                                switch (it3.key())
376
                                                {
377
                                                case 1:
378
                                                        object->setText(1, missingGlyph);
379
                                                        hasGraveError = true;
380
                                                        pageGraveError = true;
381
                                                        itemError = true;
382
                                                        break;
383
                                                case 2:
384
                                                        object->setText(1, textOverflow);
385
                                                        break;
386
                                                case 3:
387
                                                        object->setText(1, notOnPage);
388
                                                        break;
389
                                                case 4:
390
                                                        object->setText(1, missingImg);
391
                                                        hasGraveError = true;
392
                                                        pageGraveError = true;
393
                                                        itemError = true;
394
                                                        break;
395
                                                case 5:
396
                                                        object->setText(1, lowDPI);
397
                                                        break;
1235 fschmid 398
                                                case 6:
399
                                                        object->setText(1, transpar);
400
                                                        hasGraveError = true;
401
                                                        pageGraveError = true;
402
                                                        itemError = true;
403
                                                        break;
1232 fschmid 404
                                                }
405
                                        }
406
                                        else
407
                                        {
408
                                                for (it3 = it2.data().begin(); it3 != it2.data().end(); ++it3)
409
                                                {
410
                                                        QListViewItem * errorText = new QListViewItem( object, 0 );
411
                                                        switch (it3.key())
412
                                                        {
413
                                                        case 1:
414
                                                                errorText->setText(1, missingGlyph);
415
                                                                errorText->setPixmap( 0, graveError );
416
                                                                hasGraveError = true;
417
                                                                pageGraveError = true;
418
                                                                itemError = true;
419
                                                                break;
420
                                                        case 2:
421
                                                                errorText->setText(1, textOverflow);
422
                                                                errorText->setPixmap( 0, onlyWarning );
423
                                                                break;
424
                                                        case 3:
425
                                                                errorText->setText(1, notOnPage);
426
                                                                errorText->setPixmap( 0, onlyWarning );
427
                                                                break;
428
                                                        case 4:
429
                                                                errorText->setText(1, missingImg);
430
                                                                errorText->setPixmap( 0, graveError );
431
                                                                hasGraveError = true;
432
                                                                pageGraveError = true;
433
                                                                itemError = true;
434
                                                                break;
435
                                                        case 5:
436
                                                                errorText->setText(1, lowDPI);
437
                                                                errorText->setPixmap( 0, onlyWarning );
438
                                                                break;
1235 fschmid 439
                                                        case 6:
440
                                                                errorText->setText(1, transpar);
441
                                                                errorText->setPixmap( 0, graveError );
442
                                                                hasGraveError = true;
443
                                                                pageGraveError = true;
444
                                                                itemError = true;
445
                                                                break;
1232 fschmid 446
                                                        }
447
                                                }
1268 fschmid 448
                                                object->setOpen( true );
1232 fschmid 449
                                        }
450
                                        if (itemError)
451
                                                object->setPixmap( 0, graveError );
452
                                        else
453
                                                object->setPixmap( 0, onlyWarning );
454
                                }
455
                        }
456
                        if (hasError)
457
                        {
458
                                if (pageGraveError)
459
                                        page->setPixmap( 0, graveError );
460
                                else
461
                                        page->setPixmap( 0, onlyWarning );
1268 fschmid 462
                                page->setOpen( true );
1232 fschmid 463
                        }
464
                        else
465
                                page->setPixmap( 0, noErrors );
466
                        page->setText(0, tr("Page ")+tmp.setNum(a+1));
467
                }
468
                QMap<int, errorCodes>::Iterator it2;
469
                bool hasfreeItems = false;
470
                for (it2 = doc->docItemErrors.begin(); it2 != doc->docItemErrors.end(); ++it2)
471
                {
472
                        if (doc->DocItems.at(it2.key())->OwnPage == -1)
473
                        {
474
                                hasfreeItems = true;
475
                                break;
476
                        }
477
                }
478
                if (hasfreeItems)
479
                {
480
                        bool hasError = false;
481
                        bool pageGraveError = false;
482
                        QListViewItem * page = new QListViewItem( item, pagep );
483
                        pagep = page;
484
                        for (it2 = doc->docItemErrors.begin(); it2 != doc->docItemErrors.end(); ++it2)
485
                        {
486
                                if (doc->DocItems.at(it2.key())->OwnPage == -1)
487
                                {
488
                                        hasError = true;
489
                                        QListViewItem * object = new QListViewItem( page, 0 );
490
                                        object->setText(0, doc->DocItems.at(it2.key())->AnName);
1235 fschmid 491
                                        itemMap.insert(object, doc->DocItems.at(it2.key())->ItemNr);
1232 fschmid 492
                                        errorCodes::Iterator it3;
493
                                        if (it2.data().count() == 1)
494
                                        {
495
                                                it3 = it2.data().begin();
496
                                                switch (it3.key())
497
                                                {
498
                                                case 1:
499
                                                        object->setText(1, missingGlyph);
500
                                                        hasGraveError = true;
501
                                                        pageGraveError = true;
502
                                                        break;
503
                                                case 2:
504
                                                        object->setText(1, textOverflow);
505
                                                        break;
506
                                                case 3:
507
                                                        object->setText(1, notOnPage);
508
                                                        break;
509
                                                case 4:
510
                                                        object->setText(1, missingImg);
511
                                                        hasGraveError = true;
512
                                                        pageGraveError = true;
513
                                                        break;
514
                                                case 5:
515
                                                        object->setText(1, lowDPI);
516
                                                        break;
1235 fschmid 517
                                                case 6:
518
                                                        object->setText(1, transpar);
519
                                                        hasGraveError = true;
520
                                                        pageGraveError = true;
521
                                                        break;
1232 fschmid 522
                                                }
523
                                        }
524
                                        else
525
                                        {
526
                                                for (it3 = it2.data().begin(); it3 != it2.data().end(); ++it3)
527
                                                {
528
                                                        QListViewItem * errorText = new QListViewItem( object, 0 );
529
                                                        switch (it3.key())
530
                                                        {
531
                                                        case 1:
532
                                                                errorText->setText(1, missingGlyph);
533
                                                                errorText->setPixmap( 0, graveError );
534
                                                                hasGraveError = true;
535
                                                                pageGraveError = true;
536
                                                                break;
537
                                                        case 2:
538
                                                                errorText->setText(1, textOverflow);
539
                                                                errorText->setPixmap( 0, onlyWarning );
540
                                                                break;
541
                                                        case 3:
542
                                                                errorText->setText(1, notOnPage);
543
                                                                errorText->setPixmap( 0, onlyWarning );
544
                                                                break;
545
                                                        case 4:
546
                                                                errorText->setText(1, missingImg);
547
                                                                errorText->setPixmap( 0, graveError );
548
                                                                hasGraveError = true;
549
                                                                pageGraveError = true;
550
                                                                break;
551
                                                        case 5:
552
                                                                errorText->setText(1, lowDPI);
553
                                                                errorText->setPixmap( 0, onlyWarning );
554
                                                                break;
1235 fschmid 555
                                                        case 6:
556
                                                                errorText->setText(1, transpar);
557
                                                                errorText->setPixmap( 0, graveError );
558
                                                                hasGraveError = true;
559
                                                                pageGraveError = true;
560
                                                                break;
1232 fschmid 561
                                                        }
562
                                                }
1268 fschmid 563
                                                object->setOpen( true );
1232 fschmid 564
                                        }
565
                                        if (pageGraveError)
566
                                                object->setPixmap( 0, graveError );
567
                                        else
568
                                                object->setPixmap( 0, onlyWarning );
569
                                }
570
                        }
571
                        if (hasError)
572
                        {
573
                                if (pageGraveError)
574
                                        page->setPixmap( 0, graveError );
575
                                else
576
                                        page->setPixmap( 0, onlyWarning );
1268 fschmid 577
                                page->setOpen( true );
1232 fschmid 578
                        }
579
                        else
580
                                page->setPixmap( 0, noErrors );
581
                        page->setText(0, tr("Free Objects"));
582
                }
583
                if (hasGraveError)
584
                        item->setPixmap( 0, graveError );
585
                else
586
                        item->setPixmap( 0, onlyWarning );
587
                item->setText( 1, tr( "Problems found" ) );
588
                item->setOpen( true );
589
        }
1235 fschmid 590
        connect(reportDisplay, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(slotSelect(QListViewItem*)));
1232 fschmid 591
}
592
 
593
/*
594
 *  Sets the strings of the subwidgets using the current
595
 *  language.
596
 */
597
void CheckDocument::languageChange()
598
{
1245 fschmid 599
        setCaption( tr( "Preflight Verifier" ) );
1232 fschmid 600
        reportDisplay->header()->setLabel( 0, tr( "Items" ) );
601
        reportDisplay->header()->setLabel( 1, tr( "Problems" ) );
602
}
603