Пример #1
0
int DialogPage::addButton(const KGuiItem& item)
{
    int id = d->mButtons.size();
    KPushButton* button = new KPushButton(item);
    button->setFixedHeight(button->sizeHint().height() * 2);

    connect(button, SIGNAL(clicked()), d->mMapper, SLOT(map()));
    d->mLayout->addWidget(button);
    d->mMapper->setMapping(button, id);
    d->mButtons << button;
    return id;
}
Пример #2
0
void ServiceItemDelegate::updateItemWidgets(const QList<QWidget*> widgets,
                                              const QStyleOptionViewItem& option,
                                              const QPersistentModelIndex& index) const
{
    QCheckBox* checkBox = static_cast<QCheckBox*>(widgets[0]);
    KPushButton *configureButton = static_cast<KPushButton*>(widgets[1]);

    const int itemHeight = sizeHint(option, index).height();

    // Update the checkbox showing the service name and icon
    const QAbstractItemModel* model = index.model();
    checkBox->setText(model->data(index).toString());
    const QString iconName = model->data(index, Qt::DecorationRole).toString();
    if (!iconName.isEmpty()) {
        checkBox->setIcon(KIcon(iconName));
    }
    checkBox->setChecked(model->data(index, Qt::CheckStateRole).toBool());

    const bool configurable = model->data(index, ServiceModel::ConfigurableRole).toBool();

    int checkBoxWidth = option.rect.width();
    if (configurable) {
        checkBoxWidth -= configureButton->sizeHint().width();
    }
    checkBox->resize(checkBoxWidth, checkBox->sizeHint().height());
    checkBox->move(0, (itemHeight - checkBox->height()) / 2);

    // Update the configuration button
    if (configurable) {
        configureButton->setEnabled(checkBox->isChecked());
        configureButton->setIcon(KIcon("configure"));
        configureButton->resize(configureButton->sizeHint());
        configureButton->move(option.rect.right() - configureButton->width(),
                              (itemHeight - configureButton->height()) / 2);
    }
    configureButton->setVisible(configurable);
}
QGroupBox *
SelectableSubtitleDialog::createSubtitleGroupBox(const QString &title, bool addToLayout)
{
    m_subtitleGroupBox = createGroupBox(title, addToLayout);

    m_subtitleUrlLineEdit = new KLineEdit(m_subtitleGroupBox);
    m_subtitleUrlLineEdit->setCompletionObject(new KUrlCompletion());

    QLabel *subtitlePathLabel = new QLabel(m_subtitleGroupBox);
    subtitlePathLabel->setText(i18n("Path:"));
    subtitlePathLabel->setBuddy(m_subtitleUrlLineEdit);

    KPushButton *subtitleButton = new KPushButton(m_subtitleGroupBox);
    subtitleButton->setIcon(KIcon("document-open"));
    subtitleButton->setToolTip(i18n("Select subtitle"));
    int buttonSize = subtitleButton->sizeHint().height();
    subtitleButton->setFixedSize(buttonSize, buttonSize);

    connect(subtitleButton, SIGNAL(clicked()), SLOT(selectSubtitle()));

    m_subtitleEncodingComboBox = new KComboBox(m_subtitleGroupBox);
    m_subtitleEncodingComboBox->addItem(i18n("Autodetect"));
    m_subtitleEncodingComboBox->addItems(app()->availableEncodingNames());
    m_subtitleEncodingComboBox->setCurrentIndex(0);

    QLabel *subtitleEncodingLabel = new QLabel(m_subtitleGroupBox);
    subtitleEncodingLabel->setText(i18n("Encoding:"));
    subtitleEncodingLabel->setBuddy(m_subtitleEncodingComboBox);

    QHBoxLayout *subtitlePathLayout = new QHBoxLayout();
    subtitlePathLayout->addWidget(m_subtitleUrlLineEdit, 2);
    subtitlePathLayout->addWidget(subtitleButton);

    QHBoxLayout *subtitleEncodingLayout = new QHBoxLayout();
    subtitleEncodingLayout->addWidget(m_subtitleEncodingComboBox);
    subtitleEncodingLayout->addItem(new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum));

    m_subtitleLayout = createLayout(m_subtitleGroupBox);
    m_subtitleLayout->setColumnStretch(1, 2);
    m_subtitleLayout->addWidget(subtitlePathLabel, 0, 0, Qt::AlignRight | Qt::AlignVCenter);
    m_subtitleLayout->addLayout(subtitlePathLayout, 0, 1, 1, 2);
    m_subtitleLayout->addWidget(subtitleEncodingLabel, 1, 0, Qt::AlignRight | Qt::AlignVCenter);
    m_subtitleLayout->addLayout(subtitleEncodingLayout, 1, 1);

    return m_subtitleGroupBox;
}