14
14
***************************************************************************/
16
16
#include "qgsencodingfiledialog.h"
17
#include "qgsproject.h"
18
#include "qgslogger.h"
17
20
#include <QComboBox>
21
#include <QPushButton>
20
24
#include <QTextCodec>
23
QgsEncodingFileDialog::QgsEncodingFileDialog(QWidget * parent,
24
const QString & caption, const QString & directory,
25
const QString & filter, const QString & encoding)
26
: QFileDialog(parent, caption, directory, filter)
27
QgsEncodingFileDialog::QgsEncodingFileDialog( QWidget * parent,
28
const QString & caption, const QString & directory,
29
const QString & filter, const QString & encoding )
30
: QFileDialog( parent, caption, directory, filter )
28
mEncodingComboBox=new QComboBox(this);
29
QLabel* l=new QLabel(tr("Encoding:"),this);
30
layout()->addWidget(l);
31
layout()->addWidget(mEncodingComboBox);
32
mEncodingComboBox->insertItem("BIG5");
33
mEncodingComboBox->insertItem("BIG5-HKSCS");
34
mEncodingComboBox->insertItem("EUCJP");
35
mEncodingComboBox->insertItem("EUCKR");
36
mEncodingComboBox->insertItem("GB2312");
37
mEncodingComboBox->insertItem("GBK");
38
mEncodingComboBox->insertItem("GB18030");
39
mEncodingComboBox->insertItem("JIS7");
40
mEncodingComboBox->insertItem("SHIFT-JIS");
41
mEncodingComboBox->insertItem("TSCII");
42
mEncodingComboBox->insertItem("UTF-8");
43
mEncodingComboBox->insertItem("UTF-16");
44
mEncodingComboBox->insertItem("KOI8-R");
45
mEncodingComboBox->insertItem("KOI8-U");
46
mEncodingComboBox->insertItem("ISO8859-1");
47
mEncodingComboBox->insertItem("ISO8859-2");
48
mEncodingComboBox->insertItem("ISO8859-3");
49
mEncodingComboBox->insertItem("ISO8859-4");
50
mEncodingComboBox->insertItem("ISO8859-5");
51
mEncodingComboBox->insertItem("ISO8859-6");
52
mEncodingComboBox->insertItem("ISO8859-7");
53
mEncodingComboBox->insertItem("ISO8859-8");
54
mEncodingComboBox->insertItem("ISO8859-8-I");
55
mEncodingComboBox->insertItem("ISO8859-9");
56
mEncodingComboBox->insertItem("ISO8859-10");
57
mEncodingComboBox->insertItem("ISO8859-13");
58
mEncodingComboBox->insertItem("ISO8859-14");
59
mEncodingComboBox->insertItem("ISO8859-15");
60
mEncodingComboBox->insertItem("IBM 850");
61
mEncodingComboBox->insertItem("IBM 866");
62
mEncodingComboBox->insertItem("CP874");
63
mEncodingComboBox->insertItem("CP1250");
64
mEncodingComboBox->insertItem("CP1251");
65
mEncodingComboBox->insertItem("CP1252");
66
mEncodingComboBox->insertItem("CP1253");
67
mEncodingComboBox->insertItem("CP1254");
68
mEncodingComboBox->insertItem("CP1255");
69
mEncodingComboBox->insertItem("CP1256");
70
mEncodingComboBox->insertItem("CP1257");
71
mEncodingComboBox->insertItem("CP1258");
72
mEncodingComboBox->insertItem("Apple Roman");
73
mEncodingComboBox->insertItem("TIS-620");
74
if (encoding.isEmpty())
76
mEncodingComboBox->setCurrentText(QString(QTextCodec::codecForLocale()->name()));
80
mEncodingComboBox->setCurrentText(encoding);
34
mEncodingComboBox = new QComboBox( this );
35
QLabel* l = new QLabel( tr( "Encoding:" ), this );
36
layout()->addWidget( l );
37
layout()->addWidget( mEncodingComboBox );
38
mEncodingComboBox->addItem( "BIG5" );
39
mEncodingComboBox->addItem( "BIG5-HKSCS" );
40
mEncodingComboBox->addItem( "EUCJP" );
41
mEncodingComboBox->addItem( "EUCKR" );
42
mEncodingComboBox->addItem( "GB2312" );
43
mEncodingComboBox->addItem( "GBK" );
44
mEncodingComboBox->addItem( "GB18030" );
45
mEncodingComboBox->addItem( "JIS7" );
46
mEncodingComboBox->addItem( "SHIFT-JIS" );
47
mEncodingComboBox->addItem( "TSCII" );
48
mEncodingComboBox->addItem( "UTF-8" );
49
mEncodingComboBox->addItem( "UTF-16" );
50
mEncodingComboBox->addItem( "KOI8-R" );
51
mEncodingComboBox->addItem( "KOI8-U" );
52
mEncodingComboBox->addItem( "ISO8859-1" );
53
mEncodingComboBox->addItem( "ISO8859-2" );
54
mEncodingComboBox->addItem( "ISO8859-3" );
55
mEncodingComboBox->addItem( "ISO8859-4" );
56
mEncodingComboBox->addItem( "ISO8859-5" );
57
mEncodingComboBox->addItem( "ISO8859-6" );
58
mEncodingComboBox->addItem( "ISO8859-7" );
59
mEncodingComboBox->addItem( "ISO8859-8" );
60
mEncodingComboBox->addItem( "ISO8859-8-I" );
61
mEncodingComboBox->addItem( "ISO8859-9" );
62
mEncodingComboBox->addItem( "ISO8859-10" );
63
mEncodingComboBox->addItem( "ISO8859-13" );
64
mEncodingComboBox->addItem( "ISO8859-14" );
65
mEncodingComboBox->addItem( "ISO8859-15" );
66
mEncodingComboBox->addItem( "IBM 850" );
67
mEncodingComboBox->addItem( "IBM 866" );
68
mEncodingComboBox->addItem( "CP874" );
69
mEncodingComboBox->addItem( "CP1250" );
70
mEncodingComboBox->addItem( "CP1251" );
71
mEncodingComboBox->addItem( "CP1252" );
72
mEncodingComboBox->addItem( "CP1253" );
73
mEncodingComboBox->addItem( "CP1254" );
74
mEncodingComboBox->addItem( "CP1255" );
75
mEncodingComboBox->addItem( "CP1256" );
76
mEncodingComboBox->addItem( "CP1257" );
77
mEncodingComboBox->addItem( "CP1258" );
78
mEncodingComboBox->addItem( "Apple Roman" );
79
mEncodingComboBox->addItem( "TIS-620" );
81
// Use default encoding if none supplied
82
QString enc = encoding;
83
if ( encoding.isEmpty() )
86
enc = settings.value( "/UI/encoding", QString( "System" ) ).toString();
89
// The specified decoding is added if not existing alread, and then set current.
90
// This should select it.
91
int encindex = mEncodingComboBox->findText( enc );
94
mEncodingComboBox->insertItem( 0, enc );
97
mEncodingComboBox->setCurrentIndex( encindex );
83
99
// if this dialog is being invoked from QgisApp::findFiles_(), then we
84
100
// need to force selection of the first filter since that corresponds to
85
101
// the file name we're looking for; even if we're not here from
86
102
// findFiles_(), it won't hurt to force selection of the first file filter
87
selectFilter(filters().at(0));
103
selectFilter( filters().at( 0 ) );
105
// Connect our slot to get a signal when the user is done with the file dialog
106
connect( this, SIGNAL( accepted() ), this, SLOT( saveUsedEncoding() ) );
91
111
QgsEncodingFileDialog::~QgsEncodingFileDialog()
96
116
QString QgsEncodingFileDialog::encoding() const
98
return mEncodingComboBox->currentText();
118
return mEncodingComboBox->currentText();
121
void QgsEncodingFileDialog::saveUsedEncoding()
124
settings.setValue( "/UI/encoding", encoding() );
125
QgsDebugMsg( QString( "Set encoding " + encoding() + " as default." ) );
128
void QgsEncodingFileDialog::addCancelAll()
130
if ( ! mCancelAllButton )
132
mCancelAllButton = new QPushButton( "Cancel &All", NULL );
133
layout()->addWidget( mCancelAllButton ); // Ownership transfered, no need to delete later on
134
connect( mCancelAllButton, SIGNAL( clicked() ), this, SLOT( pbnCancelAll_clicked() ) );
138
bool QgsEncodingFileDialog::cancelAll()
143
void QgsEncodingFileDialog::pbnCancelAll_clicked()
146
// Now, continue as the user clicked the cancel button