14
14
You should have received a copy of the GNU General Public License
15
15
along with this program. If not, see <http://www.gnu.org/licenses/>.
17
#include "include/credsdialog.h"
17
#include "credsdialog.h"
18
18
#include "ui_credsdialog.h"
20
CredsDialog::CredsDialog(QWidget *parent) : QDialog(parent), ui(new Ui::CredsDialog) {
20
CredsDialog::CredsDialog(int mode, QWidget *parent) : QDialog(parent), ui(new Ui::CredsDialog) {
23
23
QStringList fileList;
33
ui->pbDlgCancel->hide();
26
35
ui->pbOK->setIcon(QIcon::fromTheme("dialog-ok-apply", QIcon(":/icons/dialog-ok-apply.png")));
27
36
ui->pbDlgCancel->setIcon(QIcon::fromTheme("dialog-cancel", QIcon(":/icons/dialog-ok.png")));
37
ui->pbClose->setIcon(QIcon::fromTheme("application-exit", QIcon(":/icons/application-exit.png")));
28
38
fnRegExp.setPattern("[^/]*");
29
39
fnValidator.setRegExp(fnRegExp);
30
40
sortProxy = new QSortFilterProxyModel(ui->cbCredentials);
39
49
credsDir.setFilter(QDir::Files);
40
50
fileList = credsDir.entryList();
41
if (fileList.count() == 0)
51
count = fileList.count();
43
54
ui->pbOK->setEnabled(true);
44
55
ui->pbEdit->setEnabled(true);
45
56
ui->pbDelete->setEnabled(true);
46
57
ui->leFilename->setValidator(&fnValidator);
47
ui->cbCredentials->addItems(fileList);
48
ui->cbCredentials->model()->sort(0);
58
for (int idx = 0; idx < count; idx ++) {
59
ui->cbCredentials->model()->insertRow(0);
60
index = ui->cbCredentials->model()->index(0,0);
61
ui->cbCredentials->model()->setData(index, fileList[idx]);
64
sortProxy->invalidate();
65
ui->cbCredentials->model()->sort(0, Qt::AscendingOrder);
50
69
QTimer::singleShot(0,this, SLOT(loadCreds()));
62
81
return dirName + ui->cbCredentials->itemText(current);
84
QString CredsDialog::workgroup() {
85
return ui->leDomain->text();
88
QString CredsDialog::username() {
89
return ui->leUserName->text();
92
QString CredsDialog::password() {
93
return ui->lePassword->text();
65
96
void CredsDialog::setValue(QString val) {
82
113
QStringList fields;
84
117
current = ui->cbCredentials->currentIndex();
85
118
filename = dirName + ui->cbCredentials->itemText(current);
86
119
credFile.setFileName(filename);
87
120
if (! credFile.open(QIODevice::ReadOnly)) {
88
sPlayer->play("qrc:///sounds/Warning.mp3");
121
sPlayer->play("qrc:///sounds/Warning.ogg");
89
122
QMessageBox::warning(this,tr("FiSysMg - Message"), tr("Unable to open credentials file ") + "'" + filename + "'.");
162
196
path = QDir::homePath() + "/.fisysmgr";
163
197
if (! directory.mkpath(path)) {
164
sPlayer->play("qrc:///sounds/Warning.mp3");
198
sPlayer->play("qrc:///sounds/Warning.ogg");
165
199
QMessageBox::critical(this,tr("FiSysMg - Message"), tr("Unable to create crendentials directory."));
166
200
tempFile.remove();
169
203
tempFile.setFileTemplate(path + "/Creds-XXXXXX");
170
204
if (! tempFile.open()) {
171
sPlayer->play("qrc:///sounds/Warning.mp3");
205
sPlayer->play("qrc:///sounds/Warning.ogg");
172
206
QMessageBox::critical(this,tr("FiSysMg - Message"), tr("Unable to create temporary file."));
175
209
if (! tempFile.setPermissions(perms)) {
176
sPlayer->play("qrc:///sounds/Warning.mp3");
210
sPlayer->play("qrc:///sounds/Warning.ogg");
177
211
QMessageBox::critical(this,tr("FiSysMg - Message"), tr("Unable to set permissions on temporary file."));
178
212
tempFile.remove();
181
215
if (domain != "") {
182
216
if (! writeline(&tempFile, "domain=" + domain)) {
183
sPlayer->play("qrc:///sounds/Warning.mp3");
217
sPlayer->play("qrc:///sounds/Warning.ogg");
184
218
QMessageBox::critical(this,tr("FiSysMg - Message"), tr("Unable to write to temporary file."));
185
219
tempFile.remove();
189
223
if (! writeline(&tempFile, "username=" + username)) {
190
sPlayer->play("qrc:///sounds/Warning.mp3");
224
sPlayer->play("qrc:///sounds/Warning.ogg");
191
225
QMessageBox::critical(this,tr("FiSysMg - Message"), tr("Unable to write to temporary file."));
192
226
tempFile.remove();
195
229
if (! write(&tempFile, "password=" + password)) {
196
sPlayer->play("qrc:///sounds/Warning.mp3");
230
sPlayer->play("qrc:///sounds/Warning.ogg");
197
231
QMessageBox::critical(this,tr("FiSysMg - Message"), tr("Unable to write to temporary file."));
198
232
tempFile.remove();
206
240
filename = path + "/" + filename;
207
241
if (rename(tempFile.fileName().toLocal8Bit().data(), filename.toLocal8Bit().data()) != 0) {
208
sPlayer->play("qrc:///sounds/Warning.mp3");
242
sPlayer->play("qrc:///sounds/Warning.ogg");
209
243
QMessageBox::critical(this,tr("FiSysMg - Message"), tr("Unable to save crendentials file."));
210
244
tempFile.remove();
213
247
if (! editMode) {
214
ui->cbCredentials->addItem(ui->leFilename->text());
215
ui->cbCredentials->model()->sort(0);
249
ui->cbCredentials->model()->insertRow(0);
250
index = ui->cbCredentials->model()->index(0,0);
251
ui->cbCredentials->model()->setData(index, ui->leFilename->text());
252
sortProxy->invalidate();
253
ui->cbCredentials->model()->sort(0, Qt::AscendingOrder);
216
255
current = ui->cbCredentials->findText(ui->leFilename->text());
217
256
if (current >= 0)
218
257
ui->cbCredentials->setCurrentIndex(current);
301
340
filename = dirName + name;
302
341
if (! QFile::remove(filename)) {
303
sPlayer->play("qrc:///sounds/Warning.mp3");
342
sPlayer->play("qrc:///sounds/Warning.ogg");
304
343
QMessageBox::critical(this,tr("FiSysMg - Message"),
305
344
tr("Unable to remove crendentials file '") + name + "'");
307
ui->cbCredentials->removeItem(current);
308
ui->cbCredentials->model()->sort(0);
346
ui->cbCredentials->model()->removeRow(current);
347
if (ui->cbCredentials->count() == 0) {
348
ui->pbDelete->setEnabled(false);
349
ui->pbOK->setEnabled(false);
311
354
void CredsDialog::on_leDomain_editingFinished() {