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>
87 QString windowTitle(
"");
99 if (settings.contains(
"Version/LibraryName"))
102 settings.value(
"Logger/FacilityERR",
105 settings.value(
"Logger/FacilityWRN",
108 settings.value(
"Logger/FacilityINF",
111 settings.value(
"Logger/FacilityDBG",
115 settings.value(
"Logger/FileName",
119 settings.value(
"Logger/Capacity",
122 settings.value(
"Logger/IsStoreInFile",
125 settings.value(
"Logger/IsNeedTimeMark",
128 settings.value(
"Logger/UseFullDate",
137 windowTitle +=
" with alt config=\"" +
config.
getName() +
"\"";
138 setWindowTitle(windowTitle);
140 setMinimumSize(200, 160);
155 ": Testing logger's facilities:");
157 ": This is a demo of error string");
159 ": Warnings should look like this");
163 ": ...and some debug output. End of demo.");
165 statusBar_->showMessage(
"So say we all", 1200);
220 newFileAct_->setStatusTip(tr(
"Create a new file"));
256 flushLogAct_->setStatusTip(tr(
"Save all log records into a file"));
259 quitAct_ =
new QAction(tr(
"&Quit"),
this);
262 quitAct_->setStatusTip(tr(
"Quit the application"));
263 connect(
quitAct_, SIGNAL(triggered()),
this, SLOT(
quit()));
282 openSessionAct_->setStatusTip(tr(
"Start edit session dialog (vgosDB)"));
286 openAgvAct_ =
new QAction(tr(
"Open vgosDa file"),
this);
301 undoAct_ =
new QAction(tr(
"&Undo"),
this);
302 undoAct_->setShortcuts(QKeySequence::Undo);
304 connect(
undoAct_, SIGNAL(triggered()),
this, SLOT(
undo()));
307 redoAct_ =
new QAction(tr(
"&Redo"),
this);
308 redoAct_->setShortcuts(QKeySequence::Redo);
310 connect(
redoAct_, SIGNAL(triggered()),
this, SLOT(
redo()));
313 cutAct_ =
new QAction(tr(
"&Cut"),
this);
314 cutAct_->setShortcuts(QKeySequence::Cut);
315 cutAct_->setStatusTip(tr(
"Cut"));
316 connect(
cutAct_, SIGNAL(triggered()),
this, SLOT(
cut()));
319 copyAct_ =
new QAction(tr(
"&Copy"),
this);
320 copyAct_->setShortcuts(QKeySequence::Copy);
322 connect(
copyAct_, SIGNAL(triggered()),
this, SLOT(
copy()));
325 pasteAct_ =
new QAction(tr(
"&Paste"),
this);
326 pasteAct_->setShortcuts(QKeySequence::Paste);
358 testPlotterAct_->setStatusTip(tr(
"Run test for plotter dialog (temporary)"));
362 testFour1Act_->setStatusTip(tr(
"Run test for four1 function dialog (temporary)"));
365 test1Act_ =
new QAction(tr(
"Test #1"),
this);
366 test1Act_->setStatusTip(tr(
"Run test #1"));
373 aboutAct_ =
new QAction(tr(
"&About"),
this);
375 aboutAct_->setStatusTip(tr(
"About this application"));
389 fileMenu_ = menuBar()->addMenu(tr(
"&File"));
400 editMenu_ = menuBar()->addMenu(tr(
"&Edit"));
422 toolsMenu_ = menuBar()->addMenu(tr(
"&Tools"));
426 testMenu_ = menuBar()->addMenu(tr(
"Te&st"));
432 helpMenu_ = menuBar()->addMenu(tr(
"&Help"));
444 lStats_->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
446 lStats_->setFrameStyle(QFrame::Panel | QFrame::Sunken);
448 lStats_->setToolTip(
"Total and processed number of observation, delays WRMS, Chi2");
449 lStats_->setStatusTip(
"Total and processed number of observation, delays WRMS, Chi2");
453 QString labelStr(
"<p><font face=\"Times\"><b>νSolve-" +
457 labelStr +=
"</font></p>";
459 QLabel *label=
new QLabel(labelStr,
statusBar_);
460 label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
461 label->setMinimumWidth(label->sizeHint().width() + 30);
462 label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
463 label->setLineWidth(2);
485 ": New file menu selected");
494 ": Open file menu selected");
503 ": Save file menu selected");
512 ": Print file menu selected");
521 ": Close file menu selected");
530 ": Close all files menu selected");
539 ": Flush log menu selected");
549 ": Quit menu selected");
567 ": Edit Session menu selected");
569 QString fileName(
"");
570 QString fileName2(
"");
575 if (nd->exec() != QDialog::Accepted)
583 QString path2Databases(QDir::home().absolutePath() +
"/DBH/");
584 if (!QDir(path2Databases).exists())
586 fileName = QFileDialog::getOpenFileName(
this, tr(
"Open a database"), path2Databases,
"*_V*");
589 if (fileName.isEmpty())
591 ": Session selection is canceled");
603 ": Open Wrapper file menu selected");
605 QString fileName(
"");
606 QString path2Data(QDir::home().absolutePath() +
"/vgosDB/");
607 if (!QDir(path2Data).exists())
609 fileName = QFileDialog::getOpenFileName(
this, tr(
"Open a wrap file"), path2Data,
"*.wrp");
611 if (fileName.isEmpty())
613 ": Session selection is canceled");
625 ": Open Session menu selected");
627 QString fileName(
"");
630 if (nd->exec() != QDialog::Accepted)
633 if (fileName.isEmpty())
635 ": Session selection is canceled");
647 "::openAgvFile(): Open vgosDa file menu selected");
649 QString fileName(
"");
651 fileName = QFileDialog::getOpenFileName(
this, tr(
"Open VDA file"), path2Data,
"*.vda");
653 if (fileName.isEmpty())
655 "::openAgvFile(): File selection was canceled");
667 ": Load the Last Non-finished Session menu selected",
true);
679 ": Undo menu selected");
688 ": Redo menu selected");
697 ": Cut menu selected");
706 ": Copy menu selected");
715 ": Paste menu selected");
724 ": Preferences menu selected");
734 ": Select font menu selected");
737 QFont f=QFontDialog::getFont(&isOk, QApplication::font());
740 QApplication::setFont(f);
742 settings.setValue(
"Setup/GuiFont", f);
751 QString key = action->text();
752 QApplication::setStyle(key);
754 settings.setValue(
"Setup/GuiStyle", key);
756 ": Switched to style <" + key +
">");
765 ": Make something useful #1 menu selected");
774 ": Test something useful #1 menu selected");
783 ": Test Plotter menu selected");
792 ": Test Four1 menu selected");
802 ": Test #1 menu selected");
811 ": Test #2 menu selected");
826 "<h3>This is νSolve.</h3>"
828 "The software νSolve is designed to perform analysis of geodetic VLBI observations."
842 "If you have suggestions or comments, please send e-mail to <sergei.bolotin@nasa.gov>."
855 ": About menu selected");
865 ": About Qt menu selected");
874 lStats_->setText(label + QString(
"").sprintf(
" %d/%d %.2f(ps) %.5g", numTot, numPrc, wrms, chi2));
893 qApp->processEvents();
902 qApp->processEvents();
920 qApp->processEvents();
929 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, 8, 2, "Dark Hollow Falls (rc2)", SgMJD(2023, 4, 3, 10, 59))
SgVersion libraryVersion("SgLib", 0, 8, 2, "Compton Peak (rc2)", SgMJD(2023, 4, 3, 10, 59))
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