Changeset 5114 in ntrip for trunk/GnssCenter/inpedit


Ignore:
Timestamp:
Apr 12, 2013, 6:30:08 PM (11 years ago)
Author:
mervart
Message:
 
Location:
trunk/GnssCenter/inpedit
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GnssCenter/inpedit/keyword.cpp

    r5113 r5114  
    128128  }
    129129  else if (widgetType == "selwin") {
    130     t_selWin* selWin = new t_selWin();
    131     if (_origValues.size()) {
    132       selWin->setFileName(_origValues[0]);
    133     }
     130    t_selWin::Mode mode = t_selWin::File;
     131    if      (_desc.value("seldir") == "true") {
     132      mode = t_selWin::Directory;
     133    }
     134    else if (_desc.value("maxfiles").toInt() > 1) {
     135      mode = t_selWin::Files;
     136    }
     137    t_selWin* selWin = new t_selWin(mode);
     138    selWin->setFileNames(_origValues);
    134139    _widget = selWin;
    135140  }
     
    194199  else if (widgetType == "selwin") {
    195200    t_selWin* selWin = static_cast<t_selWin*>(_widget);
     201    values << selWin->fileNames();
    196202  }
    197203  else if (widgetType == "spinbox") {
  • trunk/GnssCenter/inpedit/selwin.cpp

    r5000 r5114  
    2323// Constructor
    2424////////////////////////////////////////////////////////////////////////////////
    25 t_selWin::t_selWin(QWidget* parent, t_selWin::Mode mode) :
    26   QWidget(parent), _mode(mode) {
     25t_selWin::t_selWin(t_selWin::Mode mode, QWidget* parent) : QWidget(parent) {
     26
     27  _mode = mode;
    2728
    2829  QHBoxLayout* layout = new QHBoxLayout( this );
     
    3334
    3435  connect(_lineEdit, SIGNAL(textChanged(const QString &)),
    35           this, SIGNAL(fileNameChanged(const QString &)));
     36          this, SLOT(slotTextChanged()));
    3637
    3738  _button = new QPushButton("...", this);
     
    3940  layout->addWidget(_button);
    4041
    41   connect(_button, SIGNAL(clicked()), this, SLOT(chooseFile()));
     42  connect(_button, SIGNAL(clicked()), this, SLOT(slotChooseFile()));
    4243  setFocusProxy(_lineEdit);
    4344}
     
    5051//
    5152////////////////////////////////////////////////////////////////////////////////
    52 void t_selWin::setFileName(const QString& fileName) {
    53   _lineEdit->setText(fileName);
     53void t_selWin::setFileNames(const QStringList& fileNames) {
     54  _fileNames = fileNames;
     55  setLineEditText();
    5456}
    5557
    5658//
    5759////////////////////////////////////////////////////////////////////////////////
    58 QString t_selWin::fileName() const {
    59   return _lineEdit->text();
     60void t_selWin::setLineEditText() {
     61  if      (_fileNames.size() == 0) {
     62    _lineEdit->setText("");
     63  }
     64  else if (_fileNames.size() == 1) {
     65    _lineEdit->setText(_fileNames[0]);
     66  }
     67  else if (_fileNames.size() > 1) {
     68    _lineEdit->setText(QString("SELECTED (%1 FILES)").arg(_fileNames.size()));
     69  }
    6070}
    6171
    6272//
    6373////////////////////////////////////////////////////////////////////////////////
    64 void t_selWin::chooseFile() {
    65   QString fileName;
     74const QStringList& t_selWin::fileNames() const {
     75  return _fileNames;
     76}
     77
     78//
     79////////////////////////////////////////////////////////////////////////////////
     80void t_selWin::slotTextChanged() {
     81  _fileNames.clear();
     82  if (!_lineEdit->text().isEmpty()) {
     83    _fileNames << _lineEdit->text();
     84  }
     85  emit fileNameChanged();
     86}
     87
     88//
     89////////////////////////////////////////////////////////////////////////////////
     90void t_selWin::slotChooseFile() {
    6691  if      (mode() == File) {
    67     fileName = QFileDialog::getOpenFileName(this);
     92    QString fileName = QFileDialog::getOpenFileName(this);
     93    if (!fileName.isEmpty()) {
     94      _fileNames.clear();
     95      _fileNames << fileName;
     96      emit fileNameChanged();
     97   }
    6898  }
    6999  else if (mode() == Files) {
    70100    QStringList fileNames = QFileDialog::getOpenFileNames(this);
    71     fileName = fileNames.join(",");
     101    if (fileNames.size()) {
     102      _fileNames = fileNames;
     103      emit fileNameChanged();
     104    }
    72105  }
    73106  else {
    74     fileName = QFileDialog::getExistingDirectory(this);
     107   QString dirName = QFileDialog::getExistingDirectory(this);
     108    if (!dirName.isEmpty()) {
     109      _fileNames.clear();
     110      _fileNames << dirName;
     111      emit fileNameChanged();
     112    }
    75113  }
     114  setLineEditText();
     115}
    76116
    77   if (!fileName.isEmpty()) {
    78     _lineEdit->setText(fileName);
    79     emit fileNameChanged(fileName);
    80   }
    81 }
  • trunk/GnssCenter/inpedit/selwin.h

    r5000 r5114  
    77
    88class t_selWin : public QWidget {
    9   Q_OBJECT
    10 
    11   Q_ENUMS( Mode )
    12   Q_PROPERTY( Mode mode READ mode WRITE setMode )
    13   Q_PROPERTY( QString fileName READ fileName WRITE setFileName )
     9 Q_OBJECT
    1410
    1511 public:
    1612  enum Mode {File, Files, Directory};
    1713
    18   t_selWin(QWidget* parent = 0, t_selWin::Mode mode = File);
     14  t_selWin(t_selWin::Mode mode, QWidget* parent = 0);
    1915  ~t_selWin();
    2016
    21   QString fileName() const;
    22   Mode mode() const {return _mode;}
    23 
    24   public slots:
    25    void setFileName(const QString& fileName);
    26    void setMode(Mode mode) {_mode = mode;}
     17  const QStringList& fileNames() const;
     18  Mode        mode() const {return _mode;}
     19  void setFileNames(const QStringList& fileNames);
    2720
    2821  signals:
    29    void fileNameChanged(const QString&);
     22   void fileNameChanged();
    3023
    3124  private slots:
    32    void chooseFile();
     25   void slotTextChanged();
     26   void slotChooseFile();
    3327
    3428  private:
     29   void setLineEditText();
    3530   QLineEdit*   _lineEdit;
    3631   QPushButton* _button;
    3732   Mode         _mode;
     33   QStringList  _fileNames;
    3834};
    3935
Note: See TracChangeset for help on using the changeset viewer.