FunctionManager::FunctionManager(QWidget* parent, Doc* doc) : QWidget(parent) , m_doc(doc) , m_hsplitter(NULL) , m_vsplitter(NULL) , m_tree(NULL) , m_toolbar(NULL) , m_addSceneAction(NULL) , m_addChaserAction(NULL) , m_addCollectionAction(NULL) , m_addEFXAction(NULL) , m_addRGBMatrixAction(NULL) , m_addScriptAction(NULL) , m_addAudioAction(NULL) , m_addVideoAction(NULL) , m_autostartAction(NULL) , m_wizardAction(NULL) , m_addFolderAction(NULL) , m_cloneAction(NULL) , m_deleteAction(NULL) , m_selectAllAction(NULL) , m_editor(NULL) , m_scene_editor(NULL) { Q_ASSERT(s_instance == NULL); s_instance = this; Q_ASSERT(doc != NULL); new QVBoxLayout(this); layout()->setContentsMargins(0, 0, 0, 0); layout()->setSpacing(0); initActions(); initToolbar(); initSplitterView(); updateActionStatus(); connect(m_doc, SIGNAL(modeChanged(Doc::Mode)), this, SLOT(slotModeChanged())); m_tree->updateTree(); connect(m_doc, SIGNAL(clearing()), this, SLOT(slotDocClearing())); connect(m_doc, SIGNAL(loaded()), this, SLOT(slotDocLoaded())); connect(m_doc, SIGNAL(functionNameChanged(quint32)), this, SLOT(slotFunctionNameChanged(quint32))); connect(m_doc, SIGNAL(functionAdded(quint32)), this, SLOT(slotFunctionAdded(quint32))); QSettings settings; QVariant var = settings.value(SETTINGS_SPLITTER); if (var.isValid() == true) m_hsplitter->restoreState(var.toByteArray()); else m_hsplitter->setSizes(QList <int> () << int(this->width() / 2) << int(this->width() / 2)); }
FunctionManager::FunctionManager(QQuickView *view, Doc *doc, QObject *parent) : QObject(parent) , m_view(view) , m_doc(doc) , m_viewPosition(0) , m_previewEnabled(false) , m_filter(0) , m_searchFilter(QString()) { m_sceneCount = m_chaserCount = m_efxCount = 0; m_collectionCount = m_rgbMatrixCount = m_scriptCount = 0; m_showCount = m_audioCount = m_videoCount = 0; m_currentEditor = NULL; qmlRegisterUncreatableType<Collection>("com.qlcplus.classes", 1, 0, "Collection", "Can't create a Collection"); qmlRegisterUncreatableType<Chaser>("com.qlcplus.classes", 1, 0, "Chaser", "Can't create a Chaser"); qmlRegisterUncreatableType<RGBMatrix>("com.qlcplus.classes", 1, 0, "RGBMatrix", "Can't create a RGBMatrix"); m_functionTree = new TreeModel(this); QQmlEngine::setObjectOwnership(m_functionTree, QQmlEngine::CppOwnership); QStringList treeColumns; treeColumns << "classRef"; m_functionTree->setColumnNames(treeColumns); m_functionTree->enableSorting(true); /* for (int i = 0; i < 10; i++) { QStringList vars; vars << QString::number(i) << 0; m_functionTree->addItem(QString("Entry %1").arg(i), vars); } */ connect(m_doc, SIGNAL(loaded()), this, SLOT(slotDocLoaded())); connect(m_doc, SIGNAL(functionAdded(quint32)), this, SLOT(slotFunctionAdded())); }
FunctionManager::FunctionManager(QQuickView *view, Doc *doc, QObject *parent) : QObject(parent) , m_view(view) , m_doc(doc) , m_viewPosition(0) , m_previewEnabled(false) , m_filter(0) , m_searchFilter(QString()) { m_sceneCount = m_chaserCount = m_sequenceCount = m_efxCount = 0; m_collectionCount = m_rgbMatrixCount = m_scriptCount = 0; m_showCount = m_audioCount = m_videoCount = 0; m_currentEditor = NULL; m_sceneEditor = NULL; m_view->rootContext()->setContextProperty("functionManager", this); qmlRegisterUncreatableType<Collection>("org.qlcplus.classes", 1, 0, "Collection", "Can't create a Collection"); qmlRegisterUncreatableType<Chaser>("org.qlcplus.classes", 1, 0, "Chaser", "Can't create a Chaser"); qmlRegisterUncreatableType<RGBMatrix>("org.qlcplus.classes", 1, 0, "RGBMatrix", "Can't create a RGBMatrix"); qmlRegisterUncreatableType<EFX>("org.qlcplus.classes", 1, 0, "EFX", "Can't create an EFX"); // register SceneValue to perform QVariant comparisons qRegisterMetaType<SceneValue>(); QMetaType::registerComparators<SceneValue>(); m_functionTree = new TreeModel(this); QQmlEngine::setObjectOwnership(m_functionTree, QQmlEngine::CppOwnership); QStringList treeColumns; treeColumns << "classRef"; m_functionTree->setColumnNames(treeColumns); m_functionTree->enableSorting(true); connect(m_doc, SIGNAL(loaded()), this, SLOT(slotDocLoaded())); connect(m_doc, SIGNAL(functionAdded(quint32)), this, SLOT(slotFunctionAdded(quint32))); }
void FixtureConsole::setFixture(t_fixture_id id) { unsigned int i = 0; Fixture* fxi = NULL; ConsoleChannel* unit = NULL; m_fixture = id; fxi = _app->doc()->fixture(m_fixture); assert(fxi); // Set an icon setIcon(QPixmap(PIXMAPS + QString("/console.png"))); // Set the main horizontal layout m_layout = new QHBoxLayout(this); m_layout->setAutoAdd(true); // Create scene editor widget if (m_sceneEditor) delete m_sceneEditor; m_sceneEditor = new SceneEditor(this); m_sceneEditor->setFixture(m_fixture); m_sceneEditor->show(); // Catch function add signals connect(_app->doc(), SIGNAL(functionAdded(t_function_id)), m_sceneEditor, SLOT(slotFunctionAdded(t_function_id))); // Catch function remove signals connect(_app->doc(), SIGNAL(functionRemoved(t_function_id)), m_sceneEditor, SLOT(slotFunctionRemoved(t_function_id))); // Catch function change signals connect(_app->doc(), SIGNAL(functionChanged(t_function_id)), m_sceneEditor, SLOT(slotFunctionChanged(t_function_id))); // Create channel units for (i = 0; i < fxi->channels(); i++) { unit = new ConsoleChannel(this, m_fixture, i); unit->init(); unit->update(); // Channel updates to scene editor connect(unit, SIGNAL(changed(t_channel, t_value, Scene::ValueType)), m_sceneEditor, SLOT(slotChannelChanged(t_channel, t_value, Scene::ValueType))); // Scene editor updates to channels connect(m_sceneEditor, SIGNAL(sceneActivated(SceneValue*, t_channel)), unit, SLOT(slotSceneActivated(SceneValue*, t_channel))); m_unitList.append(unit); } /* Resize the console to some sensible proportions if at least one channel unit was inserted */ if (unit != NULL) resize(m_sceneEditor->width() + (fxi->channels() * unit->width()), 250); // Update scene editor (also causes an update to channelunits) m_sceneEditor->update(); }