示例#1
0
Resource* NewResourceAssistant::createResource()
{
    if (m_resourceType == ResourceModel::CourseItem)
    {
        Course* course = new Course();
        DataIndexCourse* templateDataIndexCourse = qobject_cast<DataIndexCourse*>(m_resourceTemplateWidget->templateResource());

        if (templateDataIndexCourse)
        {
            Course templateCourse;
            DataAccess dataAccess;
            dataAccess.loadCourse(templateDataIndexCourse, &templateCourse);
            course->copyFrom(&templateCourse);
            for (int i = 0; i < course->lessonCount(); i++)
            {
                course->lesson(i)->setId(QUuid::createUuid().toString());
            }
        }

        course->setId(QUuid::createUuid().toString());
        course->setTitle(m_newCourseWidget->title());
        course->setKeyboardLayoutName(m_newCourseWidget->keyboardLayoutName());
        course->setDescription(m_newCourseWidget->description());

        return course;
    }
    else if (m_resourceType == ResourceModel::KeyboardLayoutItem)
    {
        KeyboardLayout* keyboardLayout = new KeyboardLayout();
        DataIndexKeyboardLayout* templateDataIndexKeyboardLayout = qobject_cast<DataIndexKeyboardLayout*>(m_resourceTemplateWidget->templateResource());

        if (templateDataIndexKeyboardLayout)
        {
            KeyboardLayout templateKeyboardLayout;
            DataAccess dataAccess;
            dataAccess.loadKeyboardLayout(templateDataIndexKeyboardLayout, &templateKeyboardLayout);
            keyboardLayout->copyFrom(&templateKeyboardLayout);
        }

        keyboardLayout->setId(QUuid::createUuid().toString());
        keyboardLayout->setName(m_newKeyboardLayoutWidget->name());
        keyboardLayout->setTitle(m_newKeyboardLayoutWidget->title());

        return keyboardLayout;
    }

    return 0;
}
示例#2
0
void KeyboardLayoutEditor::openKeyboardLayout(DataIndexKeyboardLayout* dataIndexKeyboardLayout)
{
    DataAccess dataAccess;

    m_dataIndexKeyboardLayout = dataIndexKeyboardLayout;

    if (currentUndoStack())
    {
        currentUndoStack()->disconnect(this, SLOT(validateSelection()));
    }

    initUndoStack(QString("keyboard-layout-%1").arg(dataIndexKeyboardLayout->id()));
    m_propertiesWidget->setUndoStack(currentUndoStack());
    setSelectedKey(0);
    connect(currentUndoStack(), SIGNAL(indexChanged(int)), SLOT(validateSelection()));

    m_keyboardLayout->setAssociatedDataIndexKeyboardLayout(m_dataIndexKeyboardLayout);

    if (!dataAccess.loadKeyboardLayout(dataIndexKeyboardLayout, m_keyboardLayout))
    {
        KMessageBox::error(this, i18n("Error while opening keyboard layout"));
    }

    if (dataIndexKeyboardLayout->source() == DataIndex::BuiltInResource)
    {
        setReadOnly(true);
        m_messageWidget->setMessageType(KMessageWidget::Information);
        m_messageWidget->setText(i18n("Built-in keyboard layouts can only be viewed."));
        m_messageWidget->setCloseButtonVisible(false);
        m_messageWidget->animatedShow();
    }
    else
    {
        setReadOnly(false);
        m_messageWidget->animatedHide();
    }
}