void DeviceTree::PopulateTree(DiSEqCDevDevice *node, DiSEqCDevDevice *parent, uint childnum, uint depth) { QString indent; indent.fill(' ', 8 * depth); if (node) { QString id = QString::number(node->GetDeviceID()); addSelection(indent + node->GetDescription(), id); uint num_ch = node->GetChildCount(); for (uint ch = 0; ch < num_ch; ch++) PopulateTree(node->GetChild(ch), node, ch, depth+1); } else { QString id; if (parent) id = QString::number(parent->GetDeviceID()); id += ":" + QString::number(childnum); addSelection(indent + "(Unconnected)", id); } }
void DeviceTree::PopulateTree(void) { int old_sel = getValueIndex(getValue()); clearSelections(); PopulateTree(m_tree.Root()); setCurrentItem(old_sel); }
void DeviceTree::CreateNewNodeDialog(uint parentid, uint child_num) { DiSEqCDevDevice *parent = m_tree.FindDevice(parentid); if (!parent) return; DiSEqCDevDevice::dvbdev_t type; if (RunTypeDialog(type)) { DiSEqCDevDevice *dev = DiSEqCDevDevice::CreateByType(m_tree, type); if (!dev) return; if (parent->SetChild(child_num, dev)) { if (!EditNodeDialog(dev->GetDeviceID())) parent->SetChild(child_num, NULL); PopulateTree(); } else { delete dev; } } }
bool DeviceTree::EditNodeDialog(uint nodeid) { DiSEqCDevDevice *dev = m_tree.FindDevice(nodeid); if (!dev) { LOG(VB_GENERAL, LOG_ERR, QString("DeviceTree::EditNodeDialog(%1) " "-- device not found").arg(nodeid)); return false; } bool changed = false; switch (dev->GetDeviceType()) { case DiSEqCDevDevice::kTypeSwitch: { DiSEqCDevSwitch *sw = dynamic_cast<DiSEqCDevSwitch*>(dev); if (sw) { SwitchConfig config(*sw); changed = (config.exec() == MythDialog::Accepted); } } break; case DiSEqCDevDevice::kTypeRotor: { DiSEqCDevRotor *rotor = dynamic_cast<DiSEqCDevRotor*>(dev); if (rotor) { RotorConfig config(*rotor); changed = (config.exec() == MythDialog::Accepted); } } break; case DiSEqCDevDevice::kTypeLNB: { DiSEqCDevLNB *lnb = dynamic_cast<DiSEqCDevLNB*>(dev); if (lnb) { LNBConfig config(*lnb); changed = (config.exec() == MythDialog::Accepted); } } break; default: break; } if (changed) PopulateTree(); return changed; }
/* ** Updates metadata and settings when changed. ** */ void CDialogManage::CTabSkins::Update(CMeterWindow* meterWindow, bool deleted) { if (meterWindow) { if (!deleted && m_IgnoreUpdate) { // Changed setting from dialog, no need to update m_IgnoreUpdate = false; } else if (m_SkinWindow && m_SkinWindow == meterWindow) { // Update from currently open skin m_HandleCommands = false; if (deleted) { DisableControls(); m_SkinWindow = NULL; } else { SetControls(); } m_HandleCommands = true; } else if (wcscmp(meterWindow->GetFolderPath().c_str(), m_SkinFolderPath.c_str()) == 0 && wcscmp(meterWindow->GetFileName().c_str(), m_SkinFileName.c_str()) == 0) { ReadSkin(); } } else { // Populate tree HWND item = GetDlgItem(m_Window, IDC_MANAGESKINS_SKINS_TREEVIEW); TreeView_DeleteAllItems(item); TVINSERTSTRUCT tvi = {0}; tvi.hInsertAfter = TVI_LAST; tvi.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE; tvi.item.iImage = tvi.item.iSelectedImage = 0; if (!Rainmeter->m_SkinFolders.empty()) { PopulateTree(item, tvi); } } }
void DeviceTree::CreateRootNodeDialog(void) { DiSEqCDevDevice::dvbdev_t type; if (!RunTypeDialog(type)) return; DiSEqCDevDevice *dev = DiSEqCDevDevice::CreateByType(m_tree, type); if (dev) { m_tree.SetRoot(dev); if (!EditNodeDialog(dev->GetDeviceID())) m_tree.SetRoot(NULL); PopulateTree(); } }
/* ** Populates the treeview with folders and skins. ** */ int CDialogManage::CTabSkins::PopulateTree(HWND tree, TVINSERTSTRUCT& tvi, int index) { int initialLevel = Rainmeter->m_SkinFolders[index].level; const size_t max = Rainmeter->m_SkinFolders.size(); while (index < max) { const CRainmeter::SkinFolder& skinFolder = Rainmeter->m_SkinFolders[index]; if (skinFolder.level != initialLevel) { return index - 1; } HTREEITEM oldParent = tvi.hParent; // Add folder tvi.item.iImage = tvi.item.iSelectedImage = 0; tvi.item.pszText = (WCHAR*)skinFolder.name.c_str(); tvi.hParent = TreeView_InsertItem(tree, &tvi); // Add subfolders if ((index + 1) < max && Rainmeter->m_SkinFolders[index + 1].level == initialLevel + 1) { index = PopulateTree(tree, tvi, index + 1); } // Add files tvi.item.iImage = tvi.item.iSelectedImage = 1; for (int i = 0, isize = (int)skinFolder.files.size(); i < isize; ++i) { tvi.item.pszText = (WCHAR*)skinFolder.files[i].c_str(); TreeView_InsertItem(tree, &tvi); } tvi.hParent = oldParent; ++index; } return index; }
void DeviceTree::del(void) { QString id = getValue(); if (id.indexOf(':') == -1) { uint nodeid = id.toUInt(); DiSEqCDevDevice *dev = m_tree.FindDevice(nodeid); if (dev) { DiSEqCDevDevice *parent = dev->GetParent(); if (parent) parent->SetChild(dev->GetOrdinal(), NULL); else m_tree.SetRoot(NULL); PopulateTree(); } } setFocus(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //restoreGeometry( opts.mainwindowgeometry); //restoreState( opts.windowstate ); setupStatusBar(); satlist = new SatelliteList(); seglist = new AVHRRSatellite(this, satlist); formephem = new FormEphem(this, satlist, seglist); ui->stackedWidget->addWidget(formephem); // index 0 formtoolbox = NULL; formgeostationary = new FormGeostationary(this, satlist, seglist); ui->stackedWidget->addWidget(formgeostationary); // index 1 cylequidist = new CylEquiDist( opts.backgroundimage2D ); mapcyl = new MapFieldCyl(this, cylequidist, satlist, seglist); globe = new Globe(this, satlist, seglist); formimage = new FormImage(this, satlist, seglist); imagescrollarea = new ImageScrollArea(); imagescrollarea->setBackgroundRole(QPalette::Dark); imagescrollarea->setWidget(formimage); formgeostationary->SetFormImage(formimage); connect(formimage, SIGNAL(moveImage(QPoint, QPoint)), this, SLOT(moveImage(QPoint, QPoint))); for( int i = 0; i < 8; i++) { connect(&seglist->seglmeteosat->watcherRed[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); connect(&seglist->seglmeteosat->watcherGreen[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); connect(&seglist->seglmeteosat->watcherBlue[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } for( int i = 0; i < 24; i++) { connect(&seglist->seglmeteosat->watcherHRV[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } for( int i = 0; i < 8; i++) { connect(&seglist->seglmeteosatrss->watcherRed[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); connect(&seglist->seglmeteosatrss->watcherGreen[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); connect(&seglist->seglmeteosatrss->watcherBlue[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } for( int i = 0; i < 24; i++) { connect(&seglist->seglmeteosatrss->watcherHRV[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } for( int i = 0; i < 8; i++) { connect(&seglist->seglmet8->watcherRed[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); connect(&seglist->seglmet8->watcherGreen[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); connect(&seglist->seglmet8->watcherBlue[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } for( int i = 0; i < 24; i++) { connect(&seglist->seglmet8->watcherHRV[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } for( int i = 0; i < 10; i++) { connect(&seglist->seglmet7->watcherMono[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } for( int i = 0; i < 7; i++) { connect(&seglist->seglgoes13dc3->watcherMono[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } for( int i = 0; i < 7; i++) { connect(&seglist->seglgoes15dc3->watcherMono[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } for( int i = 0; i < 7; i++) { connect(&seglist->seglgoes13dc4->watcherMono[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } for( int i = 0; i < 7; i++) { connect(&seglist->seglgoes15dc4->watcherMono[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } connect(seglist->seglfy2e, SIGNAL(imagefinished()), formimage, SLOT(slotUpdateMeteosat())); connect(seglist->seglfy2g, SIGNAL(imagefinished()), formimage, SLOT(slotUpdateMeteosat())); for( int i = 0; i < 10; i++) { connect(&seglist->seglh8->watcherRed[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); connect(&seglist->seglh8->watcherGreen[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); connect(&seglist->seglh8->watcherBlue[i], SIGNAL(finished()), formimage, SLOT(slotUpdateMeteosat())); } imageptrs->gvp = new GeneralVerticalPerspective(this, seglist); imageptrs->lcc = new LambertConformalConic(this, seglist); imageptrs->sg = new StereoGraphic(this, seglist); QMainWindow::setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); QMainWindow::setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea); QMainWindow::setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); QMainWindow::setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); forminfrascales = new FormInfraScales(); formtoolbox = new FormToolbox(this, formimage, formgeostationary, forminfrascales, seglist); formimage->SetFormToolbox(formtoolbox); formgeostationary->SetFormToolBox(formtoolbox); connect(seglist->seglmeteosat, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglmeteosatrss, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglmet8, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglmet7, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglgoes13dc3, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglgoes15dc3, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglgoes13dc4, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglgoes15dc4, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglfy2e, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglfy2g, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglh8, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglviirsm, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglviirsdnb, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglolciefr, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglolcierr, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglmetop, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglnoaa, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglhrp, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglgac, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist, SIGNAL(progressCounter(int)), formtoolbox, SLOT(setValueProgressBar(int))); connect(seglist->seglviirsdnb, SIGNAL(displayDNBGraph()), formtoolbox, SLOT(slotDisplayDNBGraph())); formglobecyl = new FormMapCyl( this, mapcyl, globe, formtoolbox, satlist, seglist); connect(seglist, SIGNAL(signalNothingSelected()), formglobecyl, SLOT(slotNothingSelected())); createDockWidget(); forminfrascales->setFormImage(formimage); addDockWidget(Qt::BottomDockWidgetArea, forminfrascales); forminfrascales->hide(); formimage->SetDockWidgetInfraScales(forminfrascales); ui->stackedWidget->addWidget(formglobecyl); // index 2 ui->stackedWidget->addWidget(imagescrollarea); // index 3 ui->stackedWidget->setCurrentIndex(0); connect(seglist->seglmetop, SIGNAL(segmentlistfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglnoaa, SIGNAL(segmentlistfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglhrp, SIGNAL(segmentlistfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglgac, SIGNAL(segmentlistfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglviirsm, SIGNAL(segmentlistfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglviirsdnb, SIGNAL(segmentlistfinished(bool)), formimage, SLOT(setPixmapToLabelDNB(bool))); connect(seglist->seglolciefr, SIGNAL(segmentlistfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglolcierr, SIGNAL(segmentlistfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglmetop, SIGNAL(segmentprojectionfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglnoaa, SIGNAL(segmentprojectionfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglhrp, SIGNAL(segmentprojectionfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglgac, SIGNAL(segmentprojectionfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglviirsm, SIGNAL(segmentprojectionfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglviirsdnb, SIGNAL(segmentprojectionfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglolciefr, SIGNAL(segmentprojectionfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect(seglist->seglolcierr, SIGNAL(segmentprojectionfinished(bool)), formimage, SLOT(setPixmapToLabel(bool))); connect( formglobecyl, SIGNAL(signalSegmentChanged(QString)), this, SLOT(updateStatusBarIndicator(QString)) ); connect( ui->stackedWidget, SIGNAL(currentChanged(int)),formglobecyl, SLOT(updatesatmap(int)) ); connect( formephem,SIGNAL(signalDirectoriesRead()), formgeostationary, SLOT(PopulateTree()) ); connect( seglist,SIGNAL(signalAddedSegmentlist()), formephem, SLOT(showSegmentsAdded())); connect( formephem,SIGNAL(signalDirectoriesRead()), formglobecyl, SLOT(setScrollBarMaximum())); connect( formglobecyl, SIGNAL(emitMakeImage()), formimage, SLOT(slotMakeImage())); connect( formtoolbox, SIGNAL(emitShowVIIRSImage()), formimage, SLOT(slotShowVIIRSMImage())); connect( formtoolbox, SIGNAL(emitShowOLCIefrImage()), formimage, SLOT(slotShowOLCIefrImage())); connect( formtoolbox, SIGNAL(emitShowOLCIerrImage()), formimage, SLOT(slotShowOLCIerrImage())); connect( globe , SIGNAL(mapClicked()), formephem, SLOT(showSelectedSegmentList())); connect( mapcyl , SIGNAL(mapClicked()), formephem, SLOT(showSelectedSegmentList())); connect( formephem, SIGNAL(signalDatagram(QByteArray)), seglist, SLOT(AddSegmentsToListFromUdp(QByteArray))); connect( formimage, SIGNAL(render3dgeo(SegmentListGeostationary::eGeoSatellite)), globe, SLOT(Render3DGeo(SegmentListGeostationary::eGeoSatellite))); connect( formimage, SIGNAL(allsegmentsreceivedbuttons(bool)), formtoolbox, SLOT(setToolboxButtons(bool))); connect( globe, SIGNAL(renderingglobefinished(bool)), formtoolbox, SLOT(setToolboxButtons(bool))); connect( formgeostationary, SIGNAL(geostationarysegmentschosen(SegmentListGeostationary::eGeoSatellite, QStringList)), formtoolbox, SLOT(geostationarysegmentsChosen(SegmentListGeostationary::eGeoSatellite, QStringList))); connect( formtoolbox, SIGNAL(getmeteosatchannel(QString, QVector<QString>, QVector<bool>)), formgeostationary, SLOT(CreateGeoImage(QString, QVector<QString>, QVector<bool>))); connect( formtoolbox, SIGNAL(screenupdateprojection()), formimage, SLOT(slotUpdateProjection())); connect( formtoolbox, SIGNAL(switchstackedwidget(int)), this, SLOT(slotSwitchStackedWindow(int))); connect( formgeostationary, SIGNAL(enabletoolboxbuttons(bool)), formtoolbox, SLOT(setToolboxButtons(bool))); formtoolbox->setChannelIndex(); setWindowTitle(tr("EUMETCast Viewer")); timer = new QTimer( this ); timer->start( 1000); connect(timer, SIGNAL(timeout()), formephem, SLOT(timerDone())); connect(timer, SIGNAL(timeout()), this, SLOT(timerDone())); herr_t h5_status; unsigned int majnum; unsigned int minnum; unsigned int relnum; h5_status = H5get_libversion(&majnum, &minnum, &relnum); qDebug() << QString("HDF5 library %1.%2.%3").arg(majnum).arg(minnum).arg(relnum); loadLayout(); }
void DeviceTree::Load(void) { PopulateTree(); }