void CComDlg::updateDlg() /////////////////////////// { setWindowTitle(tr("Comets ") + curCometCatName); ui->lineEdit_2->setText(QString("%1").arg(tComets.count())); if (tComets.count() > 0) { minJD = __DBL_MAX__; maxJD = __DBL_MIN__; for (int i = 0; i < tComets.count(); i++) { comet_t *a = &tComets[i]; if (a->perihelionDate < minJD) minJD = a->perihelionDate; if (a->perihelionDate > maxJD) maxJD = a->perihelionDate; } ui->lineEdit_3->setText(QString("%1").arg(getStrDate(minJD, 0))); ui->lineEdit_4->setText(QString("%1").arg(getStrDate(maxJD, 0))); ui->pushButton_4->setEnabled(true); ui->pushButton_5->setEnabled(true); } else { ui->lineEdit_3->setText(""); ui->lineEdit_4->setText(""); ui->pushButton_4->setEnabled(false); ui->pushButton_5->setEnabled(false); } }
CTrackList::CTrackList(QWidget *parent, double tz) : QDialog(parent), ui(new Ui::CTrackList) { ui->setupUi(this); setWindowFlags(((windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowCloseButtonHint)); QStandardItemModel *model = new QStandardItemModel(0, 4); model->setHeaderData(0, Qt::Horizontal, tr("Name")); model->setHeaderData(1, Qt::Horizontal, tr("From")); model->setHeaderData(2, Qt::Horizontal, tr("To")); model->setHeaderData(3, Qt::Horizontal, tr("Steps")); for (int i = 0; i < tTracking.count(); i++) { QStandardItem *item = new QStandardItem; item->setText(tTracking[i].objName); item->setCheckable(true); if (tTracking[i].show) { item->setCheckState(Qt::Checked); } model->setItem(i, 0, item); item = new QStandardItem; item->setText(getStrDate(tTracking[i].jdFrom, tz) + " " + getStrTime(tTracking[i].jdFrom, tz, true)); model->setItem(i, 1, item); item = new QStandardItem; item->setText(getStrDate(tTracking[i].jdTo, tz) + " " + getStrTime(tTracking[i].jdTo, tz, true)); model->setItem(i, 2, item); item = new QStandardItem; item->setText(QString::number(tTracking[i].tPos.count())); model->setItem(i, 3, item); } ui->treeView->setModel(model); ui->treeView->setRootIsDecorated(false); ui->treeView->header()->resizeSection(0, 100); ui->treeView->header()->resizeSection(1, 120); ui->treeView->header()->resizeSection(2, 120); ui->treeView->header()->resizeSection(3, 60); QShortcut *sh1 = new QShortcut(QKeySequence(Qt::Key_Delete), ui->treeView, 0, 0, Qt::WidgetShortcut); connect(sh1, SIGNAL(activated()), this, SLOT(slotDeleteItem())); }
void CSatelliteDlg::fillList() { QStandardItemModel *model = (QStandardItemModel *)ui->listView->model(); model->removeRows(0, model->rowCount()); for (int i = 0; i < sgp4.count(); i++) { QStandardItem *item = new QStandardItem; item->setText(sgp4.getName(i)); item->setCheckable(true); item->setCheckState(sgp4.tleItem(i)->used ? Qt::Checked : Qt::Unchecked); item->setEditable(false); model->appendRow(item); } double minJD = __DBL_MAX__; double maxJD = __DBL_MIN__; for (int i = 0; i < sgp4.count(); i++) { double date = sgp4.tleItem(i)->epoch; if (date < minJD) minJD = date; if (date > maxJD) maxJD = date; } ui->listView->scrollToTop(); ui->lineEdit_2->setText(QString::number(model->rowCount())); if (sgp4.count() > 0) { ui->lineEdit_3->setText(getStrDate(minJD, 0)); ui->lineEdit_4->setText(getStrDate(maxJD, 0)); } else { ui->lineEdit_3->setText(""); ui->lineEdit_4->setText(""); } setWindowTitle(tr("Satellite - ") + curSatelliteCatName); }
bool logDB::get(const string& date1, const string& date2, vector<logInfo> & logArray) { char sql[1024] = {0}; sqlite3_stmt *stmt; int rc; string curDate = getStrDate(); logArray.clear(); sprintf(sql, "select * from %s where date >= '%s' and date <= '%s';", getTableName().c_str(), date1.c_str(), date2.c_str()); #if 1 { int nrow = 0, ncolumn = 0; char **azResult; char * zErrMsg; char s[] = "SELECT * FROM logTable"; sqlite3_get_table(s_db , s , &azResult , &nrow , &ncolumn , &zErrMsg ); int i = 0 ; printf( "row:%d column=%d \n" , nrow , ncolumn ); printf( "\nThe result of querying is : \n" ); for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ ) printf( "azResult[%d] = %s\n", i , azResult[i] ); } #endif rc= sqlite3_prepare(s_db,sql, strlen(sql), &stmt,0); if( rc ){ fprintf(stderr, "Can't open statement: %s\n", sqlite3_errmsg(s_db)); sqlite3_close(s_db); return false; } string str; while(sqlite3_step(stmt)==SQLITE_ROW ) { logInfo logI; logI.date = string( (const char*)sqlite3_column_text(stmt,0)); logI.isUploaded = sqlite3_column_int(stmt,1) == 1 ? true : false; if (logI.date == curDate) continue; logArray.push_back(logI); } sqlite3_finalize(stmt); return true; }
CRestoreTM::CRestoreTM(QWidget *parent) : QDialog(parent), ui(new Ui::CRestoreTM) { ui->setupUi(this); QStandardItemModel *m = new QStandardItemModel(0, 4); m->setHeaderData(0, Qt::Horizontal, QObject::tr("Date/Time")); m->setHeaderData(1, Qt::Horizontal, QObject::tr("Desc.")); m->setHeaderData(2, Qt::Horizontal, QObject::tr("R.A.")); m->setHeaderData(3, Qt::Horizontal, QObject::tr("Dec.")); ui->treeView->sortByColumn(0); ui->treeView->setSortingEnabled(true); SkFile f(QStandardPaths::writableLocation(QStandardPaths::DataLocation) + "/data/timemarks/timemarks.dat"); QTextStream s(&f); int row = 0; if (f.open(SkFile::ReadOnly | SkFile::Text)) { QStringList list; while (!s.atEnd()) { QString line = s.readLine(); list = line.split(';'); if (list.count() == 2 || list.count() == 4) { item_t *i = new item_t; i->desc = list.at(0); i->jd = list.at(1).toDouble(); CTimeMarkItem *i0 = new CTimeMarkItem; QStandardItem *i1 = new QStandardItem; CTimeMarkItemRD *i2 = new CTimeMarkItemRD; CTimeMarkItemRD *i3 = new CTimeMarkItemRD; i0->setText(getStrDate(i->jd, 0) + " " + getStrTime(i->jd, 0)); i0->setData((qint64)i); i1->setText(i->desc); if (list.count() == 4) { i->ra = D2R(list.at(2).toDouble()); i->dec = D2R(list.at(3).toDouble()); i2->setText(getStrRA(i->ra)); i2->setData(i->ra); i3->setText(getStrDeg(i->dec)); i3->setData(i->dec); } else { i->ra = CM_UNDEF; i->dec = CM_UNDEF; i2->setText(tr("N/A")); i2->setData(CM_UNDEF); i3->setText(tr("N/A")); i3->setData(CM_UNDEF); } m->setItem(row, 0, i0); m->setItem(row, 1, i1); m->setItem(row, 2, i2); m->setItem(row, 3, i3); row++; } } } ui->treeView->setModel(m); ui->treeView->header()->resizeSection(0, 140); QShortcut *sh1 = new QShortcut(QKeySequence(Qt::Key_Delete), ui->treeView, 0, 0, Qt::WidgetShortcut); connect(sh1, SIGNAL(activated()), this, SLOT(slotDelete())); }
void CEphList::on_pushButton_4_clicked() //////////////////////////////////////// { QList <int> columns; QStringList strCol; int obj; int type; bool isUT; double tz; double jdFrom; double jdTo; double step = 1; QString name; QListWidgetItem *com; QList <tableRow_t> rows; for (int i = 0; i < EL_COLUMN_COUNT; i++) { QListWidgetItem *item = ui->listWidget_2->item(i); if (item->checkState() == Qt::Checked && (item->flags() & Qt::ItemIsEnabled)) { columns.append(item->data(Qt::UserRole + 1).toInt()); } } if (columns.count() == 0) { msgBoxError(this, tr("There is no selected column!!!")); return; } switch (ui->tabWidget->currentIndex()) { case 0: type = MO_PLANET; obj = ui->listWidget->currentRow(); if (!showNoObjectSelected(obj)) return; break; case 1: type = MO_COMET; obj = ui->listWidget_3->currentRow(); if (!showNoObjectSelected(obj)) return; com = ui->listWidget_3->item(obj); obj = com->data(Qt::UserRole + 1).toInt(); break; case 2: type = MO_ASTER; obj = ui->listWidget_4->currentRow(); if (!showNoObjectSelected(obj)) return; com = ui->listWidget_4->item(obj); obj = com->data(Qt::UserRole + 1).toInt(); break; } isUT = ui->checkBox->isChecked(); if (isUT) tz = 0; else tz = m_view.geo.tz; QDateTime dt; dt = ui->dateTimeEdit->dateTime(); jdFrom = jdGetJDFrom_DateTime(&dt); dt = ui->dateTimeEdit_2->dateTime(); jdTo = jdGetJDFrom_DateTime(&dt); for (int i = 0; i < columns.count(); i++) { QString str = cELColumn[columns[i]]; strCol.append(str); } if (jdFrom >= jdTo) { msgBoxError(this, tr("Invalid date/time range!!!")); return; } double mul; switch (ui->comboBox->currentIndex()) { case 0: mul = JD1SEC * 60; break; case 1: mul = JD1SEC * 3600; break; case 2: mul = 1; break; } step = ui->spinBox->value() * mul; int count = (jdTo - jdFrom) / step; if (count > 1000) { if (QMessageBox::No == msgBoxQuest(this, tr("Calculation 1000+ positions. Do you want to continue?"))) return; } for (double jd = jdFrom; jd <= jdTo; jd += step) { bool isMoon = false; tableRow_t row; orbit_t o; m_view.jd = jd - tz; cAstro.setParam(&m_view); switch (type) { case MO_PLANET: cAstro.calcPlanet(obj, &o); name = cAstro.getName(obj); isMoon = (obj == PT_MOON); break; case MO_COMET: comSolve(&tComets[obj], m_view.jd); name = tComets[obj].name; o = tComets[obj].orbit; break; case MO_ASTER: astSolve(&tAsteroids[obj], m_view.jd); name = tAsteroids[obj].name; o = tAsteroids[obj].orbit; break; } for (int j = 0; j < columns.count(); j++) { QString str; double ra2000 = o.lRD.Ra; double dec2000 = o.lRD.Dec; precess(&ra2000, &dec2000, m_view.jd, JD2000); switch (columns[j]) { case 0: str = QString::number(m_view.jd, 'f', 6); break; case 1: str = getStrDate(m_view.jd, tz); break; case 2: str = getStrTime(m_view.jd, tz); break; case 3: str = getStrMag(o.mag); break; case 4: str = QString::number(o.phase, 'f', 3); break; case 5: str = QString::number(R2D(o.PA), 'f', 1) + "°"; break; case 6: str = QString::number(o.sx, 'f', 2) + "\""; break; case 7: str = QString::number(o.sy, 'f', 2) + "\""; break; case 8: str = getStrRA(o.lRD.Ra); break; case 9: str = getStrDeg(o.lRD.Dec); break; case 10: str = getStrRA(ra2000); break; case 11: str = getStrDeg(dec2000); break; case 12: str = getStrRA(o.gRD.Ra); break; case 13: str = getStrDeg(o.gRD.Dec); break; case 14: str = getStrDeg(o.lAzm); break; case 15: str = getStrDeg(o.lAlt); break; case 16: if (!isMoon) { str = QString::number(o.R, 'f', 6) + " AU"; } else { str = QString::number(o.r * EARTH_DIAM) + tr(" Km"); } break; case 17: if (!isMoon) { str = QString::number(o.r, 'f', 6) + " AU"; } else { str = tr("N/A"); } break; case 18: str = ((o.elongation >= 0) ? "+" : "") + QString::number(R2D(o.elongation), 'f', 2) + "°"; break; case 19: str = getStrDeg(o.hLon); break; case 20: str = getStrDeg(o.hLat); break; case 21: str = QString::number(o.hRect[0], 'f', 6) + " AU"; break; case 22: str = QString::number(o.hRect[1], 'f', 6) + " AU"; break; case 23: str = QString::number(o.hRect[2], 'f', 6) + " AU"; break; case 24: str = QString::number(o.light * 24. * 60., 'f', 2) + tr(" mins."); break; } row.row.append(str); } rows.append(row); } CEphTable dlg(this, name, strCol, rows); dlg.exec(); }