TreeNotebookItem::TreeNotebookItem(Notebook& notebook) : QObject(), QTreeWidgetItem(QTreeWidgetItem::Type), notebook(notebook) { this->setText(0, QObject::tr("Notebook")); // TODO: Notebook::getTitle() for (const QString& sectionName : notebook.getSectionNames()) { QTreeWidgetItem* sectionItem = new QTreeWidgetItem(SECTION_TREE_TYPE); sectionItem->setText(0, sectionName); this->addChild(sectionItem); for (NotebookPage* page : notebook.getPages(sectionName)) { Q_ASSERT(page); this->addPageToSectionItem(*sectionItem, *page); } } connect(&this->notebook, SIGNAL(pageMoved(NotebookPage*,QString,int)), SLOT(updatePageItem(NotebookPage*,QString,int)) ); connect(&this->notebook, SIGNAL(pageRemoved(QString,NotebookPage*)), SLOT(removePageItem(QString,NotebookPage*)) ); connect(&this->notebook, SIGNAL(sectionRenamed(QString,QString)), SLOT(renameSection(QString,QString)) ); }
InspectorSectionWidget::InspectorSectionWidget(QString name, bool editable, QWidget* parent) : InspectorSectionWidget(editable, parent) { renameSection(name); setObjectName(name); }
InspectorSectionWidget::InspectorSectionWidget( bool editable, QWidget* parent) : QWidget(parent) { // HEADER : arrow button and name auto title = new QWidget{this}; auto titleLayout = new iscore::MarginLess<QHBoxLayout>{title}; m_unfoldBtn = new QToolButton{title}; m_unfoldBtn->setAutoRaise(true); m_buttonTitle = new QPushButton{title}; m_buttonTitle->setObjectName("ButtonTitle"); m_buttonTitle->setFlat(true); m_buttonTitle->setText("section name"); m_buttonTitle->setStyleSheet("text-align: left;"); m_sectionTitle = new QLineEdit{tr("Section Name")}; m_sectionTitle->setObjectName("SectionTitle"); connect(m_sectionTitle, &QLineEdit::editingFinished, this, [=] () { emit nameChanged(m_sectionTitle->text()); }); if(editable) m_buttonTitle->hide(); else m_sectionTitle->hide(); m_menuBtn = new QPushButton{"#", title}; m_menuBtn->setObjectName("SettingsMenu"); m_menuBtn->setHidden(true); m_menu = new QMenu{m_menuBtn}; m_menuBtn->setMenu(m_menu); titleLayout->addWidget(m_unfoldBtn); titleLayout->addWidget(m_sectionTitle); titleLayout->addWidget(m_buttonTitle); titleLayout->addStretch(1); titleLayout->addWidget(m_menuBtn); // CONTENT m_container = new QWidget; m_container->setObjectName("InspectorContainer"); m_container->setContentsMargins(0,0,0,0); m_containerLayout = new iscore::MarginLess<QVBoxLayout>{m_container}; // GENERAL auto globalLayout = new iscore::MarginLess<QVBoxLayout>{this}; globalLayout->addWidget(title); globalLayout->addWidget(m_container); this->setContentsMargins(0,0,0,0); connect(m_unfoldBtn, &QAbstractButton::released, this, [&] { this->expand(!m_isUnfolded); } ); connect(m_buttonTitle, &QAbstractButton::clicked, this, [&] { this->expand(!m_isUnfolded); } ); // INIT m_isUnfolded = true; m_unfoldBtn->setArrowType(Qt::DownArrow); renameSection("Section Name"); }