File: paramsdialog.cpp

package info (click to toggle)
dares 0.6.5%2Brepack-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster, forky, sid, trixie
  • size: 700 kB
  • sloc: ansic: 1,169; cpp: 955; makefile: 32
file content (138 lines) | stat: -rw-r--r-- 4,956 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/* paramsdialog.cpp */
/* part of DAta REScue dares */

/* DAta REScue (C) 2002 Oliver Diedrich, odi@ct.heise.de */
/* (C) 2005 c't magazine for computer technology, Heise Zeitschriften Verlag */
/* This file may be redistributed under the terms of the */
/* GNU Public License (GPL), see www.gnu.org */

#include "paramsdialog.h"

#include <qlayout.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qcheckbox.h>
#include <qhbox.h>
#include <qpushbutton.h>
#include <qfiledialog.h>

ParamsDialog::ParamsDialog( const QString& imageName,
                            const QString& savePath,
                            const QString& h2iFileName,
                            const QString& logName,
                            bool useMIME,
                            QWidget* parent,
                            const char* name,
                            bool modal,
                            WFlags f )
  : QDialog( parent, name, modal, f ),
    mImageName(   imageName ),
    mSavePath(    savePath ),
    mH2iFileName( h2iFileName ),
    mLogName(     logName ),
    mUseMIME(     useMIME )
{
  setCaption( "DAta REScue (C) 2005 c't" );
  resize( 540, 40 );

  QGridLayout* grid = new QGridLayout( this, 7, 3, 16 );
  grid->setColStretch( 0, 0 );
  grid->setColStretch( 1, 1 );
  grid->setColStretch( 2, 0 );

  QLabel* label = new QLabel( this );
  label->setText( "Enter parameters or press <i>Cancel</i> to quit." );
  label->setAlignment( AlignCenter );
  grid->addMultiCellWidget( label, 0, 0, 0, 2 );

  mEditImageName = new QLineEdit( mImageName, this );
  label = new QLabel( "&Image name:", this );
  label->setBuddy( mEditImageName );
  grid->addWidget( label,          1, 0 );
  grid->addWidget( mEditImageName, 1, 1 );
  QPushButton* button = new QPushButton( "Select ...", this );
  grid->addWidget( button,         1, 2 );
  connect( button, SIGNAL( clicked() ), this, SLOT( selectImageName() ) );

  mEditSavePath = new QLineEdit( mSavePath, this );
  label = new QLabel( "Path for &saving:", this );
  label->setBuddy( mEditSavePath );
  grid->addWidget( label,           2, 0 );
  grid->addWidget( mEditSavePath,   2, 1 );
  button = new QPushButton( "Select ...", this );
  grid->addWidget( button,          2, 2 );
  connect( button, SIGNAL( clicked() ), this, SLOT( selectSavePath() ) );

  mEditH2iFileName = new QLineEdit( mH2iFileName, this );
  label = new QLabel( "&H2i file name:", this );
  label->setBuddy( mEditH2iFileName );
  grid->addWidget( label,           3, 0 );
  grid->addWidget( mEditH2iFileName,3, 1 );
  button = new QPushButton( "Select ...", this );
  grid->addWidget( button,          3, 2 );
  connect( button, SIGNAL( clicked() ), this, SLOT( selectH2iFileName() ) );

  mEditLogName = new QLineEdit( mLogName, this );
  label = new QLabel( "&Logfile name:", this );
  label->setBuddy( mEditLogName );
  grid->addWidget( label,          4, 0 );
  grid->addWidget( mEditLogName,   4, 1 );
  button = new QPushButton( "Select ...", this );
  grid->addWidget( button,         4, 2 );
  connect( button, SIGNAL( clicked() ), this, SLOT( selectLogFile() ) );

  mCheckUseMIME = new QCheckBox( "use &MIME types", this );
  mCheckUseMIME->setChecked( mUseMIME );
  grid->addWidget( mCheckUseMIME,  5, 1 );

  QHBox* box = new QHBox( this );
  box->setSpacing( 128 );
  grid->addMultiCellWidget( box, 6, 6, 0, 2 );

  button = new QPushButton( "&OK", box );
  button->setDefault( TRUE );
  connect( button, SIGNAL( clicked() ), this, SLOT( accept() ) );

  button = new QPushButton( "Cancel", box );
  button->setDefault( false );
  button->setAccel( Key_Escape );
  connect( button, SIGNAL( clicked() ), this, SLOT( reject() ) );
}


void ParamsDialog::selectImageName()
{
  mImageName = QFileDialog::getOpenFileName( mImageName, QString::null, this, "open file dialog", "Choose a file (or device, resp.) to open" );
  mEditImageName->setText( mImageName );
}

void ParamsDialog::selectSavePath()
{
  mSavePath = QFileDialog::getExistingDirectory( mSavePath, this, "get dir dialog", "Choose a directory for storing saved files" );
  if( mSavePath.endsWith("/") || mSavePath.endsWith("\\") )
    mSavePath.truncate( mSavePath.length()-1 );
  mEditSavePath->setText( mSavePath );
}

void ParamsDialog::selectH2iFileName()
{
  mH2iFileName = QFileDialog::getOpenFileName( mH2iFileName, QString::null, this, "open file dialog", "Choose h2i file for image (as written by H2cdimage)" );
  mEditH2iFileName->setText( mH2iFileName );
}

void ParamsDialog::selectLogFile()
{
  mLogName = QFileDialog::getSaveFileName( mLogName, QString::null, this, "open file dialog", "Choose a log file to store data in" );
  mEditLogName->setText( mLogName );
}

void ParamsDialog::accept()
{
  mImageName   = mEditImageName->text();
  mSavePath    = mEditSavePath->text();
  mH2iFileName = mEditH2iFileName->text();
  mLogName     = mEditLogName->text();
  mUseMIME     = mCheckUseMIME->isChecked();

  QDialog::accept();
}