- Timestamp:
- Feb 12, 2008, 4:35:06 PM (17 years ago)
- Location:
- trunk/BNC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/bncgetthread.cpp
r672 r679 382 382 } 383 383 384 bool wrongEpoch = false; 384 385 bool decode = true; 385 386 int numSucc = 0; … … 521 522 // ----------------------- 522 523 int week; 523 bool wrongEpoch = false;524 524 double sec; 525 525 currentGPSWeeks(week, sec); -
trunk/BNC/bncwindow.cpp
r677 r679 98 98 connect(_actwhatsthis, SIGNAL(triggered()), SLOT(slotWhatsThis())); 99 99 100 // Create Menus 101 // ------------ 102 _menuFile = menuBar()->addMenu(tr("&File")); 103 _menuFile->addAction(_actFontSel); 104 _menuFile->addSeparator(); 105 _menuFile->addAction(_actSaveOpt); 106 _menuFile->addSeparator(); 107 _menuFile->addAction(_actQuit); 108 109 _menuHlp = menuBar()->addMenu(tr("&Help")); 110 _menuHlp->addAction(_actHelp); 111 _menuHlp->addAction(_actAbout); 112 113 // Tool (Command) Bar 114 // ------------------ 115 QToolBar* toolBar = new QToolBar; 116 addToolBar(Qt::BottomToolBarArea, toolBar); 117 toolBar->setMovable(false); 118 toolBar->addAction(_actAddMountPoints); 119 toolBar->addAction(_actDeleteMountPoints); 120 toolBar->addAction(_actGetData); 121 toolBar->addAction(_actStop); 122 toolBar->addWidget(new QLabel(" ")); 123 toolBar->addAction(_actwhatsthis); 124 125 // Canvas with Editable Fields 126 // --------------------------- 127 _canvas = new QWidget; 128 setCentralWidget(_canvas); 129 130 QGridLayout* layout = new QGridLayout; 131 _canvas->setLayout(layout); 100 CreateMenu(); 101 AddToolbar(); 132 102 133 103 QSettings settings; 134 104 _proxyHostLineEdit = new QLineEdit(settings.value("proxyHost").toString()); 135 _proxyHostLineEdit->setMaximumWidth(12*ww);105 // _proxyHostLineEdit->setMaximumWidth(12*ww); 136 106 _proxyHostLineEdit->setWhatsThis(tr("<p>If you are running BNC within a protected Local Area Network (LAN), you might need to use a proxy server to access the Internet. Enter your proxy server IP and port number in case one is operated in front of BNC. If you don't know the IP and port of your proxy server, check the proxy server settings in your Internet browser or ask your network administrator.</p><p>Note that IP streaming is often not allowed in a LAN. In this case you need to ask your network administrator for an appropriate modification of the local security policy or for the installation of a TCP relay to the NTRIP broadcasters. If these are not possible, you might need to run BNC outside your LAN on a host that has unobstructed connection to the Internet.</p>")); 137 107 _proxyPortLineEdit = new QLineEdit(settings.value("proxyPort").toString()); … … 167 137 _rnxSkelLineEdit = new QLineEdit(settings.value("rnxSkel").toString()); 168 138 _rnxSkelLineEdit->setMaximumWidth(5*ww); 169 _rnxSkelLineEdit->setWhatsThis(tr("<p>Whenever BNC starts generating RINEX Observation files (and then once every day at midnight), it first tries to retrieve information needed for RINEX headers from so-called public RINEX header skeleton files which are derived from sitelogs. However, sometimes public RINEX header skeleton files are not available, its contents is not up to date, or you need to put additional/optional records in the RINEX header.</p><p>For that BNC allows using personal skeleton files that contain the header records you would like to include. You can derive a personal RINEX header skeleton file from the information given in an up to date sitelog. A file in the 'RINEX directory' with the extension 'RINEX skeleton extension' is interpreted by BNC as a personal RINEX header skeleton file for the corresponding stream.</p>"));139 _rnxSkelLineEdit->setWhatsThis(tr("<p>Whenever BNC starts generating RINEX Observation files (and then once every day at midnight), it first tries to retrieve information needed for RINEX headers from so-called public RINEX header skeleton files which are derived from sitelogs. However, sometimes public RINEX header skeleton files are not available, its contents is not up to date, or you need to put additional/optional records in the RINEX header.</p><p>For that BNC allows using personal skeleton files that contain the header records you would like to include. You can derive a personal RINEX header skeleton file from the information given in an up to date sitelog. A file in the 'RINEX directory' with the extension 'RINEX skeleton extension' is interpreted by BNC as a personal RINEX header skeleton file for the corresponding stream.</p>")); 170 140 _rnxAppendCheckBox = new QCheckBox(); 171 141 _rnxAppendCheckBox->setCheckState(Qt::CheckState( 172 142 settings.value("rnxAppend").toInt())); 173 _rnxAppendCheckBox->setWhatsThis(tr("<p>When BNC is started, new RINEX Observation files are created by default and any existing files with the same name will be overwritten. However, users might want to append observations and ephemeris to existing RINEXfiles following a restart of BNC, a system crash or when BNC crashed. Tick 'Append files' to continue with existing files and keep what has been recorded so far.</p>"));143 _rnxAppendCheckBox->setWhatsThis(tr("<p>When BNC is started, new files are created by default and any existing files with the same name will be overwritten. However, users might want to append already existing files following a restart of BNC, a system crash or when BNC crashed. Tick 'Append files' to continue with existing files and keep what has been recorded so far.</p>")); 174 144 _rnxIntrComboBox = new QComboBox(); 175 145 _rnxIntrComboBox->setWhatsThis(tr("<p>Select the length of the RINEX Observation file.</p>")); … … 224 194 _adviseFailSpinBox->setWhatsThis(tr("<p>An Advisory note is generated when no (or corrupted) observations are received throughout the 'Failure' threshold time span defined here. A value of about 15 min (default) is recommendable.</p><p>A value of zero '0' means that for any stream failure BNC immediately generates an Advisory note!</p><p>Note that using this function for corrupted streams needs an 'Inspect segment' greater zero '0'.</p>")); 225 195 _logFileLineEdit = new QLineEdit(settings.value("logFile").toString()); 226 _logFileLineEdit->setWhatsThis(tr("<p>Records of BNC's activities are shown in the 'Log' section below. Theycan be saved into a file when a valid path is specified in the 'Log (full path)' field.</p>"));196 _logFileLineEdit->setWhatsThis(tr("<p>Records of BNC's activities can be saved into a file when a valid path is specified in the 'Log (full path)' field.</p>")); 227 197 _adviseScriptLineEdit = new QLineEdit(settings.value("adviseScript").toString()); 228 198 _adviseScriptLineEdit->setWhatsThis(tr("<p>Specify the full path to a script or batch file to handle Advisory notes generated in case of corrupted streams of stream outages. The affected mountpoint and one of the comments 'Begin_Outage', 'End_Outage', 'Begin_Currupted', or 'End_Corrupted' are passed on to the script as two command line parameters.</p><p>The script may be used to send an email to BNC's operator and/or to the affected streamprovider. An empty option field or invalid path means that you don't want to use this option.</p>")); … … 230 200 _mountPointsTable->setWhatsThis(tr("<p>Streams selected for retrieval are listed in the 'Mountpoints' section. Button 'Add Mountpoints' opens a window that allows the user to select data streams from an NTRIP broadcaster according to their mountpoints. To remove a stream from the 'Mountpoints' list, highlight it by clicking on it and hit the 'Delete Mountpoints' button. You can also remove multiple mountpoints simultaneously by highlighting them using +Shift and +Ctrl.</p><p>BNC automatically allocates one of its internal decoders to a stream based on the stream's 'format' and 'format-details' as given in the source-table. However, there might be cases where you need to override the automatic selection due to incorrect source-table for example. BNC allows users to manually select the required decoder by editing the decoder string. Doubleclick on the 'decoder' field, enter your preferred decoder and then hit Enter. The accepted decoder strings are 'RTCM_2.x', 'RTCM_3.x', and 'RTIGS'.</p><p>In case you need to log the raw data as is, BNC allows users to by-pass its decoders and and directly save the input in daily log files. To do this specify the decoder string as 'ZERO'.</p><p>BNC can also retrieve streams from virtual reference stations (VRS). To initiate these streams, an approximate rover position needs to be sent in NMEA format to the NTRIP broadcaster. In return, a user-specific data stream is generated, typically by a Network-RTK software. This stream is customized to the exact latitude and longitude as shown in the 'lat' and 'long' columns under 'Mountpoints'. These VRS streams are indicated by a 'yes' in the 'nmea' column under 'Mountpoints' as well as in the source-table. The default 'lat' and 'long' values are taken from the source-table. However, in most cases you would probably want to change this according to your requirement. Double-click on 'lat' and 'long' fields, enter the values you wish to send and then hit Enter. The format is in positive north latitude degrees (e.g. for northern hemisphere: 52.436, for southern hemisphere: -24.567) and eastern longitude degrees (example: 358.872 or -1.128). Only mountpoints with a 'yes' in its 'nmea' column can be edited. The position must preferably be a point within the service area of the network.</p>")); 231 201 232 _mountPointsTable->horizontalHeader()->resizeSection(1, 25*ww);202 _mountPointsTable->horizontalHeader()->resizeSection(1,34*ww); 233 203 _mountPointsTable->horizontalHeader()->resizeSection(2,9*ww); 234 204 _mountPointsTable->horizontalHeader()->resizeSection(3,7*ww); … … 305 275 _log->setWhatsThis(tr("Records of BNC's activities are shown in the 'Log' section. The message log covers the communication status between BNC and the NTRIP broadcaster as well as problems that may occur in the communication link, stream availability, stream delay, stream conversion etc.")); 306 276 307 layout->addWidget(new QLabel("Proxy host"), 0, 0, 1, 2); 308 layout->addWidget(_proxyHostLineEdit, 0, 2); 309 layout->addWidget(new QLabel("Proxy port"), 0, 3); 310 layout->addWidget(_proxyPortLineEdit, 0, 4); 311 312 layout->addWidget(new QLabel("Wait for full epoch"), 1, 0, 1, 2); 313 layout->addWidget(_waitTimeSpinBox, 1, 2); 314 315 layout->addWidget(new QLabel("ASCII output file (full path)"), 2, 0, 1, 2); 316 layout->addWidget(_outFileLineEdit, 2, 2, 1, 3); 317 318 layout->addWidget(new QLabel("Ports for output"), 3, 0, 1, 2); 319 QBoxLayout* bl1 = new QBoxLayout(QBoxLayout::LeftToRight); 320 bl1->addWidget(_outPortLineEdit); 321 bl1->addWidget(new QLabel("Observations (binary)")); 322 bl1->addStretch(); 323 bl1->addWidget(_outEphPortLineEdit); 324 bl1->addWidget(new QLabel("Ephemeris (ascii)")); 325 layout->addLayout(bl1, 3, 2, 1, 2); 326 327 layout->addWidget(new QLabel("RINEX directory"), 4, 0, 1, 2); 328 layout->addWidget(_rnxPathLineEdit, 4, 2); 329 330 layout->addWidget(new QLabel("RINEX v3"), 4, 3, 1, 2); 331 layout->addWidget(_rnxV3CheckBox, 4, 4); 332 _rnxV3CheckBox->setWhatsThis(tr("<p>Default format for RINEX Observation files is RINEX Version 2.11. Select 'RINEX v3' if you want to save the observations in RINEX Version 3 format.</p>")); 333 334 layout->addWidget(new QLabel("RINEX script (full path)"), 5, 0, 1, 2); 335 layout->addWidget(_rnxScrpLineEdit, 5, 2, 1, 3); 336 337 layout->addWidget(new QLabel("File intervals"), 6, 0, 1, 2); 338 339 QBoxLayout* bl = new QBoxLayout(QBoxLayout::LeftToRight); 340 bl->addWidget(_rnxIntrComboBox); 341 bl->addWidget(new QLabel("RINEX")); 342 bl->addWidget(_ephIntrComboBox); 343 bl->addWidget(new QLabel("Ephemeris")); 344 layout->addLayout(bl, 6, 2, 1, 1); 345 346 layout->addWidget(new QLabel("Sampling"), 6, 3); 347 layout->addWidget(_rnxSamplSpinBox, 6, 4); 348 349 layout->addWidget(new QLabel("RINEX skeleton extension"), 7, 0, 1, 2); 350 layout->addWidget(_rnxSkelLineEdit, 7, 2); 351 352 layout->addWidget(new QLabel("Append files"), 7, 3); 353 layout->addWidget(_rnxAppendCheckBox, 7, 4); 354 355 layout->addWidget(new QLabel("Ephemeris directory"), 8, 0, 1, 2); 356 layout->addWidget(_ephPathLineEdit, 8, 2); 357 358 layout->addWidget(new QLabel("RINEX v3"), 8, 3, 1, 2); 359 layout->addWidget(_ephV3CheckBox, 8, 4); 360 _ephV3CheckBox->setWhatsThis(tr("<p>Default format for RINEX Navigation files containing Broadcast Ephemeris is RINEX Version 2.11. Select 'RINEX v3' if you want to save the ephemeris in RINEX Version 3 format.</p>")); 361 362 layout->addWidget(new QLabel("Advisory thresholds"), 9, 0, 1, 2); 363 QBoxLayout* bl2 = new QBoxLayout(QBoxLayout::LeftToRight); 364 bl2->addWidget(_adviseFailSpinBox); 365 bl2->addWidget(new QLabel("Failure")); 366 bl2->addWidget(_adviseRecoSpinBox); 367 bl2->addWidget(new QLabel("Recovery")); 368 bl2->addWidget(new QLabel("Inspect segment")); 369 bl2->addWidget(_inspSegmSpinBox); 370 layout->addLayout(bl2, 9, 2, 1, 3); 371 372 layout->addWidget(new QLabel("Advisory script (full path)"), 10, 0, 1, 2); 373 layout->addWidget(_adviseScriptLineEdit, 10, 2, 1, 3); 374 375 layout->addWidget(new QLabel("Mountpoints"), 11, 0, 1, 2); 376 377 layout->addWidget(_mountPointsTable, 12, 0, 1, 5); 378 379 layout->addWidget(new QLabel("Log (full path)"), 13, 0, 1, 2); 380 layout->addWidget(_logFileLineEdit, 13, 2, 1, 3); 381 layout->addWidget(_log, 14, 0, 1, 5); 277 278 279 // Canvas with Editable Fields 280 // --------------------------- 281 _canvas = new QWidget; 282 setCentralWidget(_canvas); 283 284 QTabWidget* aogroup = new QTabWidget(); 285 QWidget* pgroup = new QWidget(); 286 QWidget* ggroup = new QWidget(); 287 QWidget* sgroup = new QWidget(); 288 QWidget* egroup = new QWidget(); 289 QWidget* agroup = new QWidget(); 290 QWidget* ogroup = new QWidget(); 291 aogroup->addTab(pgroup,tr("Proxy")); 292 aogroup->addTab(ggroup,tr("General")); 293 aogroup->addTab(ogroup,tr("RINEX - Observations")); 294 aogroup->addTab(egroup,tr("RINEX - Ephemeris")); 295 aogroup->addTab(sgroup,tr("Synchronized Observations")); 296 aogroup->addTab(agroup,tr("Advisory")); 297 298 299 QGridLayout* pLayout = new QGridLayout; 300 pLayout->setColumnMinimumWidth(0,12*ww); 301 pLayout->addWidget(new QLabel("Proxy host"),0,0, Qt::AlignLeft); 302 pLayout->addWidget(_proxyHostLineEdit,0, 1); 303 pLayout->addWidget(new QLabel("Proxy port"),1,0, Qt::AlignLeft); 304 pLayout->addWidget(_proxyPortLineEdit,1,1); 305 pLayout->addWidget(new QLabel("Settings for the Proxy, leave the boxes blank if none."),2, 0, 1, 2, Qt::AlignLeft); 306 pLayout->addWidget(new QLabel(" "),3,0); 307 pLayout->addWidget(new QLabel(" "),4,0); 308 pLayout->addWidget(new QLabel(" "),5,0); 309 pgroup->setLayout(pLayout); 310 311 QGridLayout* gLayout = new QGridLayout; 312 gLayout->setColumnMinimumWidth(0,12*ww); 313 gLayout->addWidget(new QLabel("Logfile (full path)"), 0,0); 314 gLayout->addWidget(_logFileLineEdit, 0,1); 315 gLayout->addWidget(new QLabel("Append files") ,1,0 ); 316 gLayout->addWidget(_rnxAppendCheckBox, 1,1 ); 317 gLayout->addWidget(new QLabel("General settings for logfile and file handling."),2, 0, 1, 2, Qt::AlignLeft); 318 gLayout->addWidget(new QLabel(" "),3,0); 319 gLayout->addWidget(new QLabel(" "),4,0); 320 gLayout->addWidget(new QLabel(" "),5,0); 321 ggroup->setLayout(gLayout); 322 323 QGridLayout* sLayout = new QGridLayout; 324 sLayout->setColumnMinimumWidth(0,12*ww); 325 sLayout->addWidget(new QLabel("Port"), 0, 0); 326 sLayout->addWidget(_outPortLineEdit, 0, 1); 327 sLayout->addWidget(new QLabel("Wait for full epoch"), 1, 0); 328 sLayout->addWidget(_waitTimeSpinBox, 1, 1); 329 sLayout->addWidget(new QLabel("File (full path)"), 2, 0); 330 sLayout->addWidget(_outFileLineEdit, 2, 1); 331 sLayout->addWidget(new QLabel("Output synchronized observations epoch by epoch."),3,0,1,2,Qt::AlignLeft); 332 sLayout->addWidget(new QLabel(" "),4,0); 333 sLayout->addWidget(new QLabel(" "),5,0); 334 sgroup->setLayout(sLayout); 335 336 QGridLayout* eLayout = new QGridLayout; 337 eLayout->setColumnMinimumWidth(0,12*ww); 338 eLayout->addWidget(new QLabel("Interval"), 0, 0); 339 eLayout->addWidget(_ephIntrComboBox, 0, 1); 340 eLayout->addWidget(new QLabel("Port"), 1, 0); 341 eLayout->addWidget(_outEphPortLineEdit, 1, 1); 342 eLayout->addWidget(new QLabel("Directory"), 2, 0); 343 eLayout->addWidget(_ephPathLineEdit, 2, 1); 344 eLayout->addWidget(new QLabel("Version 3"), 3, 0); 345 eLayout->addWidget(_ephV3CheckBox, 3, 1); 346 _ephV3CheckBox->setWhatsThis(tr("<p>Default format for RINEX Navigation files containing Broadcast Ephemeris is RINEX Version 2.11. Select 'Version 3' if you want to save the ephemeris in RINEX Version 3 format.</p>")); 347 eLayout->addWidget(new QLabel("Saving RINEX ephemeris files."),4,0,1,2,Qt::AlignLeft); 348 eLayout->addWidget(new QLabel(" "),5,0); 349 egroup->setLayout(eLayout); 350 351 QGridLayout* aLayout = new QGridLayout; 352 aLayout->setColumnMinimumWidth(0,12*ww); 353 aLayout->addWidget(new QLabel("Failure"), 0, 0); 354 aLayout->addWidget(_adviseFailSpinBox, 0, 1); 355 aLayout->addWidget(new QLabel("Recovery"), 1, 0); 356 aLayout->addWidget(_adviseRecoSpinBox, 1, 1); 357 aLayout->addWidget(new QLabel("Script (full path)"), 2, 0); 358 aLayout->addWidget(_adviseScriptLineEdit, 2, 1); 359 aLayout->addWidget(new QLabel("Inspect segment"), 3, 0); 360 aLayout->addWidget(_inspSegmSpinBox, 3, 1); 361 aLayout->addWidget(new QLabel("Advisory notes, handling of corrupted streams."),4,0,1,2,Qt::AlignLeft); 362 aLayout->addWidget(new QLabel(" "),5,0); 363 agroup->setLayout(aLayout); 364 365 QGridLayout* oLayout = new QGridLayout; 366 oLayout->setColumnMinimumWidth(0,12*ww); 367 oLayout->setColumnMinimumWidth(1,8*ww); 368 oLayout->setColumnMinimumWidth(2,12*ww); 369 oLayout->setColumnMinimumWidth(3,40*ww); 370 oLayout->addWidget(new QLabel("Interval"), 0, 0); 371 oLayout->addWidget(_rnxIntrComboBox, 0, 1); 372 oLayout->addWidget(new QLabel("Sampling"), 0, 2, Qt::AlignRight); 373 oLayout->addWidget(_rnxSamplSpinBox, 0, 3, Qt::AlignLeft); 374 oLayout->addWidget(new QLabel("Directory"), 1, 0); 375 oLayout->addWidget(_rnxPathLineEdit, 1, 1,1,3); 376 oLayout->addWidget(new QLabel("Skeleton"), 2, 0); 377 oLayout->addWidget(_rnxSkelLineEdit, 2, 1); 378 oLayout->addWidget(new QLabel("Script (full path)"), 3, 0); 379 oLayout->addWidget(_rnxScrpLineEdit, 3, 1, 1, 3); 380 oLayout->addWidget(new QLabel("Version 3"), 4, 0); 381 oLayout->addWidget(_rnxV3CheckBox, 4, 1); 382 _rnxV3CheckBox->setWhatsThis(tr("<p>Default format for RINEX Observation files is RINEX Version 2.11. Select 'Version 3' if you want to save the observations in RINEX Version 3 format.</p>")); 383 oLayout->addWidget(new QLabel("Saving RINEX observation files."),5,0,1,4, Qt::AlignLeft); 384 ogroup->setLayout(oLayout); 385 386 QVBoxLayout* mLayout = new QVBoxLayout; 387 mLayout->addWidget(aogroup); 388 mLayout->addWidget(_mountPointsTable); 389 mLayout->addWidget(_log); 390 391 _canvas->setLayout(mLayout); 382 392 } 383 393 … … 662 672 //////////////////////////////////////////////////////////////////////////// 663 673 void bncWindow::slotAbout() { 664 665 QTextBrowser* tb = new QTextBrowser; 666 QUrl url; url.setPath(":bncabout.html"); 667 tb->setSource(url); 668 tb->setReadOnly(true); 669 670 QDialog dlg(0); 671 672 QGridLayout* dlgLayout = new QGridLayout(); 673 QLabel* img = new QLabel(); 674 img->setPixmap(QPixmap(":ntrip-logo.png")); 675 dlgLayout->addWidget(img, 0,0); 676 dlgLayout->addWidget(new QLabel("BKG NTRIP Client (BNC) Version 1.5"), 0,1); 677 dlgLayout->addWidget(tb,1,0,1,2); 678 679 dlg.setLayout(dlgLayout); 680 int ww = QFontMetrics(font()).width('w'); 681 dlg.resize(60*ww, 60*ww); 682 dlg.exec(); 674 new bncAboutDlg(0); 683 675 } 684 676 … … 711 703 } 712 704 713 705 void bncWindow::CreateMenu() { 706 // Create Menus 707 // ------------ 708 _menuFile = menuBar()->addMenu(tr("&File")); 709 _menuFile->addAction(_actFontSel); 710 _menuFile->addSeparator(); 711 _menuFile->addAction(_actSaveOpt); 712 _menuFile->addSeparator(); 713 _menuFile->addAction(_actQuit); 714 715 _menuHlp = menuBar()->addMenu(tr("&Help")); 716 _menuHlp->addAction(_actHelp); 717 _menuHlp->addAction(_actAbout); 718 719 } 720 721 void bncWindow::AddToolbar() { 722 // Tool (Command) Bar 723 // ------------------ 724 QToolBar* toolBar = new QToolBar; 725 addToolBar(Qt::BottomToolBarArea, toolBar); 726 toolBar->setMovable(false); 727 toolBar->addAction(_actAddMountPoints); 728 toolBar->addAction(_actDeleteMountPoints); 729 toolBar->addAction(_actGetData); 730 toolBar->addAction(_actStop); 731 toolBar->addWidget(new QLabel(" ")); 732 toolBar->addAction(_actwhatsthis); 733 } 734 735 bncAboutDlg::bncAboutDlg(QWidget* parent) : 736 QDialog(parent) { 737 738 QTextBrowser* tb = new QTextBrowser; 739 QUrl url; url.setPath(":bncabout.html"); 740 tb->setSource(url); 741 tb->setReadOnly(true); 742 743 int ww = QFontMetrics(font()).width('w'); 744 QPushButton* _closeButton = new QPushButton("Close"); 745 _closeButton->setMaximumWidth(10*ww); 746 connect(_closeButton, SIGNAL(clicked()), this, SLOT(close())); 747 748 QGridLayout* dlgLayout = new QGridLayout(); 749 QLabel* img = new QLabel(); 750 img->setPixmap(QPixmap(":ntrip-logo.png")); 751 dlgLayout->addWidget(img, 0,0); 752 dlgLayout->addWidget(new QLabel("BKG NTRIP Client (BNC) Version 1.5"), 0,1); 753 dlgLayout->addWidget(tb,1,0,1,2); 754 dlgLayout->addWidget(_closeButton,2,1,Qt::AlignRight); 755 756 setLayout(dlgLayout); 757 resize(60*ww, 60*ww); 758 show(); 759 } 760 761 bncAboutDlg::~bncAboutDlg() { 762 }; 763 -
trunk/BNC/bncwindow.h
r668 r679 32 32 #include "bnccaster.h" 33 33 34 class bncWindow : public QMainWindow { 34 class bncAboutDlg : public QDialog { 35 Q_OBJECT 36 37 public: 38 bncAboutDlg(QWidget* parent); 39 ~bncAboutDlg(); 40 }; 41 42 class bncWindow : public QMainWindow { 35 43 Q_OBJECT 36 44 … … 38 46 bncWindow(); 39 47 ~bncWindow(); 48 void CreateMenu(); 49 void AddToolbar(); 40 50 41 51 public slots: … … 104 114 105 115 QWidget* _canvas; 116 QTabWidget* aogroup; 106 117 107 118 bncCaster* _caster;
Note:
See TracChangeset
for help on using the changeset viewer.