30 #include <QtCore/QSettings>
33 #if QT_VERSION >= 0x050000
34 # include <QtWidgets/QAction>
35 # include <QtWidgets/QApplication>
36 # include <QtWidgets/QFileDialog>
37 # include <QtWidgets/QFontDialog>
38 # include <QtWidgets/QLabel>
39 # include <QtWidgets/QMenu>
40 # include <QtWidgets/QMenuBar>
41 # include <QtWidgets/QMessageBox>
42 # include <QtWidgets/QStyle>
43 # include <QtWidgets/QStyleFactory>
45 # include <QtGui/QAction>
46 # include <QtGui/QApplication>
47 # include <QtGui/QFileDialog>
48 # include <QtGui/QFontDialog>
49 # include <QtGui/QLabel>
50 # include <QtGui/QMenu>
51 # include <QtGui/QMenuBar>
52 # include <QtGui/QMessageBox>
53 # include <QtGui/QStyle>
54 # include <QtGui/QStyleFactory>
57 # include <QtGui/QFont>
88 QString windowTitle(
"");
100 if (settings.contains(
"Version/LibraryName"))
103 settings.value(
"Logger/FacilityERR",
106 settings.value(
"Logger/FacilityWRN",
109 settings.value(
"Logger/FacilityINF",
112 settings.value(
"Logger/FacilityDBG",
116 settings.value(
"Logger/FileName",
120 settings.value(
"Logger/Capacity",
123 settings.value(
"Logger/IsStoreInFile",
126 settings.value(
"Logger/IsNeedTimeMark",
129 settings.value(
"Logger/UseFullDate",
138 windowTitle +=
" with alt config=\"" +
config.
getName() +
"\"";
139 setWindowTitle(windowTitle);
141 setMinimumSize(200, 160);
156 ": Testing logger's facilities:");
158 ": This is a demo of error string");
160 ": Warnings should look like this");
164 ": ...and some debug output. End of demo.");
166 statusBar_->showMessage(
"So say we all", 1200);
218 newFileAct_->setStatusTip(tr(
"Create a new file"));
254 flushLogAct_->setStatusTip(tr(
"Save all log records into a file"));
257 quitAct_ =
new QAction(tr(
"&Quit"),
this);
260 quitAct_->setStatusTip(tr(
"Quit the application"));
261 connect(
quitAct_, SIGNAL(triggered()),
this, SLOT(
quit()));
280 openSessionAct_->setStatusTip(tr(
"Start edit session dialog (vgosDB)"));
284 openAgvAct_ =
new QAction(tr(
"Open vgosDa file"),
this);
299 undoAct_ =
new QAction(tr(
"&Undo"),
this);
300 undoAct_->setShortcuts(QKeySequence::Undo);
302 connect(
undoAct_, SIGNAL(triggered()),
this, SLOT(
undo()));
305 redoAct_ =
new QAction(tr(
"&Redo"),
this);
306 redoAct_->setShortcuts(QKeySequence::Redo);
308 connect(
redoAct_, SIGNAL(triggered()),
this, SLOT(
redo()));
311 cutAct_ =
new QAction(tr(
"&Cut"),
this);
312 cutAct_->setShortcuts(QKeySequence::Cut);
313 cutAct_->setStatusTip(tr(
"Cut"));
314 connect(
cutAct_, SIGNAL(triggered()),
this, SLOT(
cut()));
317 copyAct_ =
new QAction(tr(
"&Copy"),
this);
318 copyAct_->setShortcuts(QKeySequence::Copy);
320 connect(
copyAct_, SIGNAL(triggered()),
this, SLOT(
copy()));
323 pasteAct_ =
new QAction(tr(
"&Paste"),
this);
324 pasteAct_->setShortcuts(QKeySequence::Paste);
356 testPlotterAct_->setStatusTip(tr(
"Run test for plotter dialog (temporary)"));
360 testFour1Act_->setStatusTip(tr(
"Run test for four1 function dialog (temporary)"));
363 test1Act_ =
new QAction(tr(
"Test #1"),
this);
364 test1Act_->setStatusTip(tr(
"Run test #1"));
371 aboutAct_ =
new QAction(tr(
"&About"),
this);
373 aboutAct_->setStatusTip(tr(
"About this application"));
387 fileMenu_ = menuBar()->addMenu(tr(
"&File"));
398 editMenu_ = menuBar()->addMenu(tr(
"&Edit"));
420 toolsMenu_ = menuBar()->addMenu(tr(
"&Tools"));
424 testMenu_ = menuBar()->addMenu(tr(
"Te&st"));
430 helpMenu_ = menuBar()->addMenu(tr(
"&Help"));
442 lStats_->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
444 lStats_->setFrameStyle(QFrame::Panel | QFrame::Sunken);
446 lStats_->setToolTip(
"Total and processed number of observation, delays WRMS, Chi2");
447 lStats_->setStatusTip(
"Total and processed number of observation, delays WRMS, Chi2");
451 QString labelStr(
"<p><font face=\"Times\"><b>νSolve-" +
455 labelStr +=
"</font></p>";
457 QLabel *label=
new QLabel(labelStr,
statusBar_);
458 label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
459 label->setMinimumWidth(label->sizeHint().width() + 30);
460 label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
461 label->setLineWidth(2);
483 ": New file menu selected");
492 ": Open file menu selected");
501 ": Save file menu selected");
510 ": Print file menu selected");
519 ": Close file menu selected");
528 ": Close all files menu selected");
537 ": Flush log menu selected");
547 ": Quit menu selected");
565 ": Edit Session menu selected");
567 QString fileName(
"");
568 QString fileName2(
"");
573 if (nd->exec() != QDialog::Accepted)
581 QString path2Databases(QDir::home().absolutePath() +
"/DBH/");
582 if (!QDir(path2Databases).exists())
584 fileName = QFileDialog::getOpenFileName(
this, tr(
"Open a database"), path2Databases,
"*_V*");
587 if (fileName.isEmpty())
589 ": Session selection is canceled");
601 ": Open Wrapper file menu selected");
603 QString fileName(
"");
604 QString path2Data(QDir::home().absolutePath() +
"/vgosDB/");
605 if (!QDir(path2Data).exists())
607 fileName = QFileDialog::getOpenFileName(
this, tr(
"Open a wrap file"), path2Data,
"*.wrp");
609 if (fileName.isEmpty())
611 ": Session selection is canceled");
623 ": Open Session menu selected");
625 QString fileName(
"");
628 if (nd->exec() != QDialog::Accepted)
631 if (fileName.isEmpty())
633 ": Session selection is canceled");
645 "::openAgvFile(): Open vgosDa file menu selected");
647 QString fileName(
"");
649 fileName = QFileDialog::getOpenFileName(
this, tr(
"Open VDA file"), path2Data,
"*.vda");
651 if (fileName.isEmpty())
653 "::openAgvFile(): File selection was canceled");
665 ": Load the Last Non-finished Session menu selected",
true);
677 ": Undo menu selected");
686 ": Redo menu selected");
695 ": Cut menu selected");
704 ": Copy menu selected");
713 ": Paste menu selected");
722 ": Preferences menu selected");
732 ": Select font menu selected");
735 QFont f=QFontDialog::getFont(&isOk, QApplication::font());
738 QApplication::setFont(f);
740 settings.setValue(
"Setup/GuiFont", f);
749 QString key = action->text();
750 QApplication::setStyle(key);
752 settings.setValue(
"Setup/GuiStyle", key);
754 ": Switched to style <" + key +
">");
763 ": Make something useful #1 menu selected");
772 ": Test something useful #1 menu selected");
781 ": Test Plotter menu selected");
790 ": Test Four1 menu selected");
800 ": Test #1 menu selected");
809 ": Test #2 menu selected");
824 "<h3>This is νSolve.</h3>"
826 "The software νSolve is designed to perform analysis of geodetic VLBI observations."
840 "If you have suggestions or comments, please send e-mail to <sergei.bolotin@nasa.gov>."
853 ": About menu selected");
863 ": About Qt menu selected");
872 lStats_->setText(label + QString(
"").sprintf(
" %d/%d %.2f(ps) %.5g", numTot, numPrc, wrms, chi2));
891 qApp->processEvents();
900 qApp->processEvents();
918 qApp->processEvents();
927 qApp->processEvents();
void longOperationStartDisplay(int minStep, int maxStep, const QString &message)
NsMainWindow * mainWindow
void longOperationStopDisplay()
void longOperationMessageDisplay(const QString &message)
void longOperationShowStats(const QString &label, int numTot, int numPrc, double wrms, double chi2)
void longOperationProgressDisplay(int step)
SgVersion nuSolveVersion("nuSolve", 0, 7, 5, "Carroll Creek (rc)", SgMJD(2022, 2, 18, 17, 34))
SgVersion libraryVersion("SgLib", 0, 7, 5, "Tuscarora (rc1)", SgMJD(2022, 2, 18, 17, 34))
void showStats(const QString &label, int numTot, int numPrc, double wrms, double chi2)
QAction * testSomething1Act_
QProgressBar * progressBar()
QAction * openWrapperFileAct_
QProgressBar * progressBar_
NsMainWindow(QWidget *parent=0, Qt::WindowFlags flags=0)
QAction * makeSomething1Act_
QLabel * statusBarMessager()
QString className() const
QAction * loadLnfSessionAct_
QAction * openSessionAct_
QAction * testPlotterAct_
QAction * editGenConfigAct_
QLabel * statusBarMessager_
void switchToStyle(QAction *)
QAction * preferencesAct_
QAction * editSessionAct_
int getMainWinHeight() const
QString path2(const QString &) const
const QString & getPath2Home() const
int getMainWinWidth() const
SgIdentities & identities()
void setMainWinWidth(int)
const QString & getPath2VgosDaFiles() const
bool getHave2UpdateCatalog() const
const QString & getLnfsFileName() const
const QString & getPath2DbhFiles() const
int getMainWinPosX() const
const QString & getPath2VgosDbFiles() const
bool getLnfsIsThroughCatalog() const
SgVlbiSessionInfo::OriginType getLnfsOriginType() const
int getMainWinPosY() const
void setMainWinHeight(int)
const QString & getAcFullName() const
const QString & getUserName() const
virtual void write(LogLevel, quint32, const QString &, bool=false)
bool getIsStoreInFile() const
void setIsStoreInFile(bool isStoreInFile)
void setLogFacility(LogLevel lvl, quint32 f)
void setFileName(const QString &fileName)
void setIsNeedTimeMark(bool isNeedTimeMark)
quint32 getLogFacility(LogLevel lvl) const
void setDirName(const QString &dirName)
virtual void clearSpool()
void setCapacity(int capacity)
bool getIsNeedTimeMark() const
const QString & getFileName() const
bool getUseFullDateFormat() const
void setUseFullDateFormat(bool useFullDateFormat)
@ F_DDMonYYYY
Date: 2010 Apr 02.
@ F_VerboseLong
Verbose output: 02 Apr, 2010; 17:02:43.6400.
QString toString(Format format=F_Verbose) const
static SgMJD currentMJD()
const QString & getName() const
const SgMJD & getReleaseEpoch() const
const QString & getSoftwareName() const
QString name(NameFormat fmt=NF_Human) const
const QString & getCodeName() const
@ OT_DBH
observations are from database files provided by correlators;
@ OT_AGV
observations are in AGV format;
@ OT_VDB
observations are from vgosDb data tree;
@ OT_UNKNOWN
unknown (=all others) source of import;
SgParametersDescriptor parametersDescriptor