~ubuntu-branches/ubuntu/trusty/qgis/trusty

« back to all changes in this revision

Viewing changes to src/gui/qgsencodingfiledialog.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Johan Van de Wauw
  • Date: 2010-07-11 20:23:24 UTC
  • mfrom: (3.1.4 squeeze)
  • Revision ID: james.westby@ubuntu.com-20100711202324-5ktghxa7hracohmr
Tags: 1.4.0+12730-3ubuntu1
* Merge from Debian unstable (LP: #540941).
* Fix compilation issues with QT 4.7
* Add build-depends on libqt4-webkit-dev 

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
 ***************************************************************************/
15
15
 
16
16
#include "qgsencodingfiledialog.h"
 
17
#include "qgsproject.h"
 
18
#include "qgslogger.h"
 
19
#include <QSettings>
17
20
#include <QComboBox>
 
21
#include <QPushButton>
18
22
#include <QLabel>
19
23
#include <QLayout>
20
24
#include <QTextCodec>
21
25
 
22
26
 
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 )
27
31
{
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())
75
 
  {
76
 
    mEncodingComboBox->setCurrentText(QString(QTextCodec::codecForLocale()->name()));
77
 
  }
78
 
  else
79
 
  {
80
 
    mEncodingComboBox->setCurrentText(encoding);
81
 
  }
 
32
  mCancelAll       = false;
 
33
  mCancelAllButton = 0;
 
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" );
 
80
 
 
81
  // Use default encoding if none supplied
 
82
  QString enc = encoding;
 
83
  if ( encoding.isEmpty() )
 
84
  {
 
85
    QSettings settings;
 
86
    enc = settings.value( "/UI/encoding", QString( "System" ) ).toString();
 
87
  }
 
88
 
 
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 );
 
92
  if ( encindex < 0 )
 
93
  {
 
94
    mEncodingComboBox->insertItem( 0, enc );
 
95
    encindex = 0;
 
96
  }
 
97
  mEncodingComboBox->setCurrentIndex( encindex );
82
98
 
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 ) );
 
104
 
 
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() ) );
 
107
 
88
108
 
89
109
}
90
110
 
91
111
QgsEncodingFileDialog::~QgsEncodingFileDialog()
92
112
{
93
 
    
 
113
 
94
114
}
95
115
 
96
116
QString QgsEncodingFileDialog::encoding() const
97
117
{
98
 
    return mEncodingComboBox->currentText();
 
118
  return mEncodingComboBox->currentText();
 
119
}
 
120
 
 
121
void QgsEncodingFileDialog::saveUsedEncoding()
 
122
{
 
123
  QSettings settings;
 
124
  settings.setValue( "/UI/encoding", encoding() );
 
125
  QgsDebugMsg( QString( "Set encoding " + encoding() + " as default." ) );
 
126
}
 
127
 
 
128
void QgsEncodingFileDialog::addCancelAll()
 
129
{
 
130
  if ( ! mCancelAllButton )
 
131
  {
 
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() ) );
 
135
  }
 
136
}
 
137
 
 
138
bool QgsEncodingFileDialog::cancelAll()
 
139
{
 
140
  return mCancelAll;
 
141
}
 
142
 
 
143
void QgsEncodingFileDialog::pbnCancelAll_clicked()
 
144
{
 
145
  mCancelAll = true;
 
146
  // Now, continue as the user clicked the cancel button
 
147
  reject();
99
148
}