Пример #1
0
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))
            );
}
Пример #2
0
InspectorSectionWidget::InspectorSectionWidget(QString name, bool editable, QWidget* parent) :
    InspectorSectionWidget(editable, parent)
{
    renameSection(name);
    setObjectName(name);
}
Пример #3
0
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");
}