Changeset 83 in ntrip for trunk/BNC/bncwindow.cpp


Ignore:
Timestamp:
Aug 30, 2006, 5:41:24 PM (18 years ago)
Author:
mervart
Message:

* empty log message *

Location:
trunk/BNC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC

    • Property svn:ignore
      •  

        old new  
        77moc_bnctabledlg.cpp
        88moc_bncwindow.cpp
         9moc_bncapp.cpp
  • trunk/BNC/bncwindow.cpp

    r59 r83  
    2626bncWindow::bncWindow() {
    2727
    28   setMinimumSize(600,400);
     28  setMinimumSize(400,600);
    2929
    3030  // Create Actions
     
    4444  _actDeleteMountPoints = new QAction(tr("&Delete Mount Points"),this);
    4545  connect(_actDeleteMountPoints, SIGNAL(triggered()), SLOT(slotDeleteMountPoints()));
     46  _actDeleteMountPoints->setEnabled(false);
    4647
    4748  _actGetData = new QAction(tr("&Get Data"),this);
     
    7576  _canvas->setLayout(layout);
    7677
     78  _userLabel          = new QLabel("user");
     79  _passwordLabel      = new QLabel("password");
    7780  _proxyHostLabel     = new QLabel("proxy host");
    7881  _proxyPortLabel     = new QLabel("proxy port");
    79   _userLabel          = new QLabel("user");
    80   _passwordLabel      = new QLabel("password");
    81   _outFileLabel       = new QLabel("output file");
    82   _outPortLabel       = new QLabel("output port");
     82  _outFileLabel       = new QLabel("ASCII output file (full path)");
     83  _outPortLabel       = new QLabel("port for binary output");
     84  _rnxPathLabel       = new QLabel("RINEX path");
     85  _rnxSkelLabel       = new QLabel("RINEX skeleton extension");
     86  _rnxIntrLabel       = new QLabel("RINEX file interval");
    8387  _mountPointsLabel   = new QLabel("mount points");
     88  _logLabel           = new QLabel("log");
    8489
    8590  QSettings settings;
    8691
    8792  _proxyHostLineEdit  = new QLineEdit(settings.value("proxyHost").toString());
     93  int ww = QFontMetrics(_proxyHostLineEdit->font()).width('w');
     94  _proxyHostLineEdit->setMaximumWidth(12*ww);
    8895  _proxyPortLineEdit  = new QLineEdit(settings.value("proxyPort").toString());
     96  _proxyPortLineEdit->setMaximumWidth(9*ww);
    8997  _userLineEdit       = new QLineEdit(settings.value("user").toString());
     98  _userLineEdit->setMaximumWidth(9*ww);
    9099  _passwordLineEdit   = new QLineEdit(settings.value("password").toString());
     100  _passwordLineEdit->setMaximumWidth(9*ww);
    91101  _passwordLineEdit->setEchoMode(QLineEdit::Password);
    92102  _outFileLineEdit    = new QLineEdit(settings.value("outFile").toString());
    93103  _outPortLineEdit    = new QLineEdit(settings.value("outPort").toString());
     104  _outPortLineEdit->setMaximumWidth(9*ww);
     105  _rnxPathLineEdit    = new QLineEdit(settings.value("rnxPath").toString());
     106  _rnxSkelLineEdit    = new QLineEdit(settings.value("rnxSkel").toString());
     107  _rnxSkelLineEdit->setMaximumWidth(5*ww);
     108  _rnxIntrSpinBox     = new QSpinBox();
     109  _rnxIntrSpinBox->setMaximumWidth(12*ww);
     110  _rnxIntrSpinBox->setValue(settings.value("rnxIntr").toInt());
     111  _rnxIntrSpinBox->setSuffix("  hour");
     112  _rnxIntrSpinBox->setRange(1,24);
     113  _rnxIntrSpinBox->setSingleStep(23);
    94114  _mountPointsTable   = new QTableWidget(0,2);
    95   _mountPointsTable->setMaximumHeight(100);
     115  _mountPointsTable->setMaximumHeight(140);
     116  _mountPointsTable->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
    96117  _mountPointsTable->horizontalHeader()->hide();
    97   _mountPointsTable->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
    98118  _mountPointsTable->verticalHeader()->hide();
    99119  _mountPointsTable->setGridStyle(Qt::NoPen);
     
    107127  while (it.hasNext()) {
    108128    QStringList hlp = it.next().split(" ");
     129    if (hlp.size() <= 1) continue;
    109130    QString mPoint = hlp[0];
    110131    QString format = hlp[1];
     
    114135    iRow++;
    115136  }
    116 
    117   layout->addWidget(_proxyHostLabel,     0, 0);
    118   layout->addWidget(_proxyHostLineEdit,  0, 1);
    119   layout->addWidget(_proxyPortLabel,     0, 2);
    120   layout->addWidget(_proxyPortLineEdit,  0, 3);
    121   layout->addWidget(_userLabel,          1, 0);
    122   layout->addWidget(_userLineEdit,       1, 1);
    123   layout->addWidget(_passwordLabel,      1, 2);
    124   layout->addWidget(_passwordLineEdit,   1, 3);
    125   layout->addWidget(_outFileLabel,       2, 0);
    126   layout->addWidget(_outFileLineEdit,    2, 1);
    127   layout->addWidget(_outPortLabel,       2, 2);
    128   layout->addWidget(_outPortLineEdit,    2, 3);
    129 
    130   layout->addWidget(_mountPointsLabel,   3, 0);
    131   layout->addWidget(_mountPointsTable,   3, 1, 1, 3);
     137  _mountPointsTable->sortItems(0);
     138
     139  connect(_mountPointsTable, SIGNAL(itemSelectionChanged()),
     140          SLOT(slotSelectionChanged()));
     141
     142  _log = new QTextEdit();
     143  _log->setMaximumHeight(120);
     144  _log->setReadOnly(true);
     145
     146  layout->addWidget(_userLabel,          0, 0);
     147  layout->addWidget(_userLineEdit,       0, 1);
     148  layout->addWidget(_passwordLabel,      0, 2);
     149  layout->addWidget(_passwordLineEdit,   0, 3);
     150  layout->addWidget(_proxyHostLabel,     1, 0);
     151  layout->addWidget(_proxyHostLineEdit,  1, 1);
     152  layout->addWidget(_proxyPortLabel,     1, 2);
     153  layout->addWidget(_proxyPortLineEdit,  1, 3);
     154  layout->addWidget(_outFileLabel,       2, 1);
     155  layout->addWidget(_outFileLineEdit,    2, 2, 1, 2);
     156  layout->addWidget(_outPortLabel,       3, 1);
     157  layout->addWidget(_outPortLineEdit,    3, 2);
     158  layout->addWidget(_rnxPathLabel,       4, 1);
     159  layout->addWidget(_rnxPathLineEdit,    4, 2, 1, 2);
     160  layout->addWidget(_rnxSkelLabel,       5, 1);
     161  layout->addWidget(_rnxSkelLineEdit,    5, 2);
     162  layout->addWidget(_rnxIntrLabel,       6, 1);
     163  layout->addWidget(_rnxIntrSpinBox,     6, 2);
     164  layout->addWidget(_mountPointsLabel,   7, 0);
     165  layout->addWidget(_mountPointsTable,   7, 1, 1, 3);
     166  layout->addWidget(_logLabel,           8, 0);
     167  layout->addWidget(_log,                8, 1, 1, 3);
    132168
    133169  _bncCaster = 0;
     
    144180  bncTableDlg* dlg = new bncTableDlg(this, _proxyHostLineEdit->text(),
    145181                                     _proxyPortLineEdit->text().toInt());
     182  dlg->move(this->pos().x()+50, this->pos().y()+50);
    146183  connect(dlg, SIGNAL(newMountPoints(QStringList*)),
    147184          this, SLOT(slotNewMountPoints(QStringList*)));
     
    154191////////////////////////////////////////////////////////////////////////////
    155192void bncWindow::slotDeleteMountPoints() {
    156   _mountPointsTable->clear();
    157   _mountPointsTable->setRowCount(0);
     193  while(1) {
     194    bool itemRemoved = false;
     195    for (int iRow = 0; iRow < _mountPointsTable->rowCount(); iRow++) {
     196      if (_mountPointsTable->isItemSelected(_mountPointsTable->item(iRow,0))) {
     197        _mountPointsTable->removeRow(iRow);
     198        itemRemoved = true;
     199        break;
     200      }
     201    }
     202    if (!itemRemoved) {
     203      break;
     204    }
     205  }
     206  _actDeleteMountPoints->setEnabled(false);
    158207}
    159208
     
    172221    iRow++;
    173222  }
     223  _mountPointsTable->sortItems(0);
    174224  if (mountPoints->count() > 0) {
    175225    _actGetData->setEnabled(true);
     
    188238  settings.setValue("outFile",     _outFileLineEdit->text());
    189239  settings.setValue("outPort",     _outPortLineEdit->text());
     240  settings.setValue("rnxPath",     _rnxPathLineEdit->text());
     241  settings.setValue("rnxIntr",     _rnxIntrSpinBox->value());
     242  settings.setValue("rnxSkel",     _rnxSkelLineEdit->text());
    190243  QStringList mountPoints;
    191244  for (int iRow = 0; iRow < _mountPointsTable->rowCount(); iRow++) {
     
    199252////////////////////////////////////////////////////////////////////////////
    200253void bncWindow::slotGetThreadErrors() {
    201   QMessageBox::warning(0, "BNC", "All Get Threads Terminated");
     254  slotMessage("All Get Threads Terminated");
    202255  _actAddMountPoints->setEnabled(true);
    203   _actDeleteMountPoints->setEnabled(true);
    204256  _actGetData->setEnabled(true);
    205257}
     
    223275          this, SLOT(slotGetThreadErrors()));
    224276
     277  connect(_bncCaster, SIGNAL(newMessage(const QByteArray&)),
     278          this, SLOT(slotMessage(const QByteArray&)));
     279
    225280  _bncCaster->start();
    226281
     
    234289                                               mountPoint, user, password,
    235290                                               format);
     291
     292    connect(getThread, SIGNAL(newMessage(const QByteArray&)),
     293            this, SLOT(slotMessage(const QByteArray&)));
     294
    236295    _bncCaster->addGetThread(getThread);
    237296
     
    239298  }
    240299}
     300
     301// Close Application gracefully
     302////////////////////////////////////////////////////////////////////////////
     303void bncWindow::closeEvent(QCloseEvent* event) {
     304
     305  int iRet = QMessageBox::question(this, "Close", "Save Options?",
     306                                   QMessageBox::Yes, QMessageBox::No,
     307                                   QMessageBox::Cancel);
     308
     309  if      (iRet == QMessageBox::Cancel) {
     310    event->ignore();
     311    return;
     312  }
     313  else if (iRet == QMessageBox::Yes) {
     314    slotSaveOptions();
     315  }
     316
     317  return QMainWindow::closeEvent(event);
     318}
     319
     320// User changed the selection of mountPoints
     321////////////////////////////////////////////////////////////////////////////
     322void bncWindow::slotSelectionChanged() {
     323  if (_mountPointsTable->selectedItems().isEmpty()) {
     324    _actDeleteMountPoints->setEnabled(false);
     325  }
     326  else {
     327    _actDeleteMountPoints->setEnabled(true);
     328  }
     329}
     330
     331// Display Program Messages
     332////////////////////////////////////////////////////////////////////////////
     333void bncWindow::slotMessage(const QByteArray& msg) {
     334
     335  const int maxBufferSize = 10000;
     336 
     337  QString txt = _log->toPlainText() + "\n" + msg;
     338  _log->clear();
     339  _log->append(txt.right(maxBufferSize));
     340
     341
Note: See TracChangeset for help on using the changeset viewer.