Changeset 2796 in ntrip


Ignore:
Timestamp:
Dec 14, 2010, 3:47:20 PM (13 years ago)
Author:
mervart
Message:
 
Location:
trunk/BNC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncmap.cpp

    r2754 r2796  
    1010bncMap::bncMap(QWidget* parent) : QDialog(parent)
    1111{
    12   _scale  = 2.8;    // scale the map
    13   _LaOff  =  20;    // shift longitude
    14   _mapView = new QGraphicsView();
     12  _scale  =  2.8;   // scale the map
     13  _LaOff  =   25;   // shift longitude
    1514  _mapScen = new QGraphicsScene();
     15  _mapView = new BncMapView();
    1616  _mapView->setScene(_mapScen);
     17  _mapView->setMatrix(QMatrix(_scale,0,0,_scale,0,0));
    1718  slotReadMap();
    1819  slotCreateMap();
    19 
    20   setWindowTitle(tr("World Map [*]"));
     20  _mapScen->setSceneRect(QRect(0,-90,360,180));
     21
     22  setWindowTitle(tr("Source-Table Map [*]"));
    2123 
    2224  /* close button */
    2325  QPushButton* buttClose = new QPushButton("Close");
    2426  connect(buttClose, SIGNAL(clicked()), this, SLOT(close()));
     27   
     28  /* rescale button */
     29  QPushButton* buttClean = new QPushButton("Clean");
     30  connect(buttClean, SIGNAL(clicked()), this, SLOT(slotCleanMap()));
    2531
    2632  /* reset button */
     
    2834  connect(buttReset, SIGNAL(clicked()), this, SLOT(slotResetMap()));
    2935
     36  /* zoom button */
     37  QPushButton* buttZoomIn = new QPushButton("Zoom +");
     38  connect(buttZoomIn, SIGNAL(clicked()), this, SLOT(slotZoomIn()));
     39
     40  /* zoom button */
     41  QPushButton* buttZoomOut = new QPushButton("Zoom -");
     42  connect(buttZoomOut, SIGNAL(clicked()), this, SLOT(slotZoomOut()));
     43
     44  /* fit button */
     45  QPushButton* buttFit = new QPushButton("Fit");
     46  connect(buttFit, SIGNAL(clicked()), this, SLOT(slotFitMap()));
     47
    3048  /* layout */
    31   QGridLayout *layout = new QGridLayout;
    32   layout->setRowMinimumHeight(  0, 250);
    33   layout->addWidget(_mapView,                0, 0, 3, 1, Qt::AlignLeft);
    34   layout->addWidget(buttReset,               1, 1, 1, 1, Qt::AlignBottom);
    35   layout->addWidget(buttClose,               2, 1, 1, 1, Qt::AlignBottom);
    36   setLayout(layout);
    37  
    38 //  this->resize(860,400);
     49  QVBoxLayout* MapLayout = new QVBoxLayout;
     50  QHBoxLayout* ButLayout = new QHBoxLayout;
     51   
     52  ButLayout->addWidget(buttZoomIn);
     53  ButLayout->addWidget(buttZoomOut);
     54  ButLayout->addWidget(buttClean);
     55  ButLayout->addWidget(buttReset);
     56  ButLayout->addWidget(buttFit);
     57  ButLayout->addWidget(buttClose);
     58   
     59  MapLayout->addWidget(_mapView);
     60  MapLayout->addLayout(ButLayout);
     61   
     62  setLayout(MapLayout);
     63
    3964  this->show();
    4065}
     
    6186
    6287    in >> la >> fi;
     88
     89    // la = 0-360
     90    while( la <    0 ){ la += 360; }
     91    while( la >= 360 ){ la -= 360; }
     92     
     93    // fi opposite
    6394    _worldMap << QPointF( la, -fi );
    64        
     95       
    6596  }
    66 
    6797  world.close();
    6898}
     
    72102void bncMap::slotCreateMap()
    73103
    74 //   mapScen->setForegroundBrush(QBrush(Qt::lightGray, Qt::CrossPattern));   // grid
     104  //  _mapScen->setForegroundBrush(QBrush(Qt::lightGray, Qt::CrossPattern));   // grid
    75105
    76106  int begIdx = 0;
     
    79109    if( _worldMap.at(i).x() == 0.0 and _worldMap.at(i).y() == 0.0 ){
    80110      if( i > 0 ){
    81         endIdx = i-1;
     111        endIdx = i-1;
    82112        while( begIdx < endIdx ){
    83113
    84           int l1 = 0;
    85           int l2 = 0;
     114          int l1 = 0;
     115          int l2 = 0;
    86116
    87117          float la1 = _worldMap.at(begIdx+0).x() + _LaOff;
     
    90120          float fi2 = _worldMap.at(begIdx+1).y();
    91121          begIdx++;
    92            
    93           while( la1 <    0 ){ la1 += 360; l1++; }
    94           while( la1 >= 360 ){ la1 -= 360; l1--; }
    95           while( la2 <    0 ){ la2 += 360; l2++; }
    96           while( la2 >= 360 ){ la2 -= 360; l2--; }
    97 
    98           if( l1 != 0 and l2 == 0 ){ continue; } // break this line
    99           if( l2 != 0 and l1 == 0 ){ continue; } // break this line
    100 
    101           _mapScen->addLine(la1*_scale, fi1*_scale, la2*_scale, fi2*_scale, QPen(QBrush(Qt::black),1));
     122           
     123          while( la1 <    0 ){ la1 += 360; l1++; }
     124          while( la1 >= 360 ){ la1 -= 360; l1--; }
     125          while( la2 <    0 ){ la2 += 360; l2++; }
     126          while( la2 >= 360 ){ la2 -= 360; l2--; }
     127
     128          if( l1 != 0 and l2 == 0 ){ continue; } // break this line
     129          if( l2 != 0 and l1 == 0 ){ continue; } // break this line
     130
     131          _mapScen->addLine(la1, fi1, la2, fi2, QPen(QBrush(Qt::gray),0.3));
    102132        }
    103133      }
     
    105135    }
    106136  }
    107   _mapScen->setSceneRect(0*_scale,-90*_scale,360*_scale,180*_scale);
    108 }
    109 
    110 
    111 // ------------
    112 void bncMap::slotResetMap()
     137}
     138
     139
     140// ------------
     141void bncMap::slotCleanMap()
    113142{
    114143  QMutexLocker locker(&_mutexMap);
    115144  _mapScen->clear();
    116145  slotCreateMap();
     146  slotResetMap();
     147}
     148
     149
     150// ------------
     151void bncMap::slotResetMap()
     152{
     153  _mapView->setMatrix(QMatrix(_scale,0,0,_scale,0,0));
     154}
     155
     156
     157// ------------
     158void bncMap::slotZoomIn()
     159
     160  _mapView->scale( 1.2, 1.2 );
     161}
     162
     163
     164// ------------
     165void bncMap::slotZoomOut()
     166
     167  _mapView->scale( 1/1.2, 1/1.2 );
     168}
     169
     170
     171// ------------
     172void bncMap::slotFitMap()
     173
     174  QRectF reg = _allPoints.boundingRect().adjusted(-10,-10,10,10);
     175   
     176  _mapView->updateSceneRect(reg);
     177  _mapView->centerOn(reg.center());
     178  _mapView->fitInView(reg,Qt::KeepAspectRatio);
    117179}
    118180
     
    121183void bncMap::slotNewPoint(QPointF point, QString name, QPen pen)
    122184{
    123   float la = point.x() + _LaOff;
    124   float fi = point.y();
     185  float la =   point.x() + _LaOff;
     186  float fi = - point.y();
    125187   
    126188  while( la <    0 ){ la += 360; }
    127189  while( la >= 360 ){ la -= 360; }
    128 
    129   _mapScen->addEllipse( la*_scale, -fi*_scale, 5, 5, pen );
     190   
     191  _allPoints << QPointF(la, fi);
     192  _mapScen->addEllipse( la, fi, 1.5, 1.5, pen );
    130193
    131194  if( ! name.isEmpty() ){
    132195    QGraphicsTextItem* nameItem = new QGraphicsTextItem( name );
    133     nameItem->setPos( QPointF(la*_scale, -fi*_scale));
    134     nameItem->setFont( QFont("Helvetica", 8) );
     196    nameItem->setPos( QPointF(la-1, fi-2));
     197    nameItem->setFont( QFont("Arial", 2, 1) );
    135198
    136199    _mapScen->addItem( nameItem );
  • trunk/BNC/bncmap.h

    r2755 r2796  
    77
    88#include <QtGui>
     9#include "bncmapview.h"
    910
    1011class bncMap : public QDialog
     
    1718   
    1819 public slots:
    19    void slotNewPoint( QPointF, QString, QPen);
     20   void slotNewPoint(QPointF, QString, QPen);
     21   void slotResetMap();
     22   void slotFitMap();
     23   void slotZoomIn();
     24   void slotZoomOut();
    2025   void slotCreateMap();
    21    void slotResetMap();
     26   void slotCleanMap();
    2227   void slotReadMap();
    2328   
     
    2732   double          _LaOff;
    2833
    29    QGraphicsView*  _mapView;
     34   BncMapView*     _mapView;
    3035   QGraphicsScene* _mapScen;
    3136   QPolygonF       _worldMap;
     37   QPolygonF       _allPoints;
    3238   QMutex          _mutexMap;
    3339
  • trunk/BNC/bnctabledlg.cpp

    r2755 r2796  
    145145  connect(_buttonMap, SIGNAL(clicked()), this, SLOT(slotShowMap()));
    146146 
    147   _buttonCancel = new QPushButton(tr("Cancel"), this);
    148   connect(_buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
    149 
    150   _buttonOK = new QPushButton(tr("OK"), this);
    151   connect(_buttonOK, SIGNAL(clicked()), this, SLOT(accept()));
     147  _buttonClose = new QPushButton(tr("Close"), this);
     148  connect(_buttonClose, SIGNAL(clicked()), this, SLOT(close()));
     149
     150  _buttonSelect = new QPushButton(tr("Select"), this);
     151  connect(_buttonSelect, SIGNAL(clicked()), this, SLOT(select()));
    152152
    153153  QHBoxLayout* buttonLayout = new QHBoxLayout;
     
    156156  buttonLayout->addWidget(_buttonMap);
    157157  buttonLayout->addWidget(_buttonGet);
    158   buttonLayout->addWidget(_buttonCancel);
    159   buttonLayout->addWidget(_buttonOK);
     158  buttonLayout->addWidget(_buttonSelect);
     159  buttonLayout->addWidget(_buttonClose);
    160160
    161161  mainLayout->addLayout(buttonLayout);
     
    171171  delete _ntripVersionComboBox;
    172172  delete _buttonGet;
    173   delete _buttonCancel;
    174   delete _buttonOK;
     173  delete _buttonClose;
     174  delete _buttonSelect;
    175175  delete _buttonWhatsThis;
    176176  delete _buttonCasterTable;
     
    303303
    304304  bncMap* winMap = new bncMap(this);
    305   winMap->setGeometry( x(), int(y()+height()*1.2), 860, 400 );
     305  winMap->setGeometry( x(), int(y()+height()*1.3), 880, 440 );
    306306
    307307  connect(this, SIGNAL(newPoint(QPointF, QString, QPen)),
    308308          winMap, SLOT(slotNewPoint(QPointF, QString, QPen)));
    309   connect(this, SIGNAL(resetMap()), winMap, SLOT(slotResetMap()));
     309     
     310  connect(this, SIGNAL(fitMap()),
     311          winMap, SLOT(slotFitMap() ));
    310312     
    311313  _buttonMap->setEnabled(false);
     
    316318  disconnect(this, SIGNAL(newPoint(QPointF, QString, QPen)),
    317319             winMap, SLOT(slotNewPoint(QPointF, QString, QPen)));
    318   disconnect(this, SIGNAL(resetMap()), winMap, SLOT(slotResetMap()));
     320   
     321  disconnect(this, SIGNAL(fitMap()),
     322             winMap, SLOT(slotFitMap() ));
    319323   
    320324  delete winMap;
     
    335339                 point.setY( tmp.at(9).toDouble() );
    336340                 point.setX( tmp.at(10).toDouble() );
     341
    337342         QString site = tmp.at(1);
    338343                 site.resize(4);
    339344
    340          emit newPoint(point, site, QPen(QBrush(QColor(0,0,255,180)), 5) );
    341        }             
     345         emit newPoint(point, site, QPen(QBrush(QColor(0,0,255,200)), 1.5) );
     346       }
    342347     }
    343348   }
    344 }
    345 
    346 
    347 // Accept slot
    348 ////////////////////////////////////////////////////////////////////////////
    349 void bncTableDlg::accept() {
     349   emit fitMap();
     350}
     351
     352
     353// Select slot
     354////////////////////////////////////////////////////////////////////////////
     355void bncTableDlg::select() {
    350356
    351357  bncSettings settings;
     
    361367  QStringList* mountPoints = new QStringList;
    362368  if (_table) {
    363 //  emit resetMap();
    364369    for (int ir = 0; ir < _table->rowCount(); ir++) {
    365370      QTableWidgetItem* item   = _table->item(ir,0);
     
    373378      if (_table->isItemSelected(item)) {
    374379        url.setPath(item->text());
    375         mountPoints->push_back(url.toString() + " " + format + " " + latitude 
     380        mountPoints->push_back(url.toString() + " " + format + " " + latitude
    376381                        + " " + longitude + " " + nmea + " " + ntripVersion);
    377382         
     383        site.resize(4);
    378384        emit newPoint(QPointF(longitude.toDouble(),latitude.toDouble()), site,
    379                       QPen(QBrush(QColor(255,0,0,180)), 13) );
    380 
     385                      QPen(QBrush(QColor(255,0,0,200)), 3) );
    381386      }
    382387    }
    383388  }
    384389  emit newMountPoints(mountPoints);
    385 
    386   QDialog::accept();
    387390}
    388391
     
    411414  _buttonWhatsThis->setEnabled(false);
    412415  _buttonGet->setEnabled(false);
    413   _buttonCancel->setEnabled(false);
    414   _buttonOK->setEnabled(false);
     416  _buttonClose->setEnabled(false);
     417  _buttonSelect->setEnabled(false);
    415418
    416419  bncCasterTableDlg* dlg = new bncCasterTableDlg(this);
     
    429432  _buttonWhatsThis->setEnabled(true);
    430433  _buttonGet->setEnabled(true);
    431   _buttonCancel->setEnabled(true);
    432   _buttonOK->setEnabled(true);
     434  _buttonClose->setEnabled(true);
     435  _buttonSelect->setEnabled(true);
    433436
    434437}
  • trunk/BNC/bnctabledlg.h

    r2753 r2796  
    6565    void newMountPoints(QStringList* mountPoints);
    6666    void newPoint(QPointF, QString, QPen);
    67     void resetMap();
     67    void fitMap();
    6868
    6969  private slots:
    70     virtual void accept();
     70    virtual void select();
    7171    void slotGetTable();
    7272    void slotShowMap();
     
    8888    QPushButton* _buttonGet;
    8989    QPushButton* _buttonMap;
    90     QPushButton* _buttonCancel;
    91     QPushButton* _buttonOK;
     90    QPushButton* _buttonClose;
     91    QPushButton* _buttonSelect;
    9292    QPushButton* _buttonWhatsThis;
    9393    QPushButton* _buttonCasterTable;
Note: See TracChangeset for help on using the changeset viewer.