本文整理汇总了C++中QCheckBox::setProperty方法的典型用法代码示例。如果您正苦于以下问题:C++ QCheckBox::setProperty方法的具体用法?C++ QCheckBox::setProperty怎么用?C++ QCheckBox::setProperty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QCheckBox
的用法示例。
在下文中一共展示了QCheckBox::setProperty方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setProperties
void AbstractCameraManager::setProperties(std::vector<CameraProperty> &properties) {
cameraProperties = std::vector<CameraProperty>(properties);
for(unsigned int i=0; i<cameraProperties.size(); i++) {
CameraProperty &property = cameraProperties.at(i);
//qDebug() << property.getName().c_str() << reinterpret_cast<quintptr>(&property);
QTreeWidgetItem* it = new QTreeWidgetItem();
it->setText( Ui::PropertyName, property.getName().c_str());
propertiesList.addTopLevelItem(it);
//checkbox
QCheckBox* box = new QCheckBox();
box->setProperty("CameraProperty", QVariant::fromValue(reinterpret_cast<quintptr>(&property)) );
if(!property.getCanAuto()) box->setEnabled(false);
propertiesList.setItemWidget(it, Ui::PropertyAuto, box);
connect( box, SIGNAL(stateChanged(int)), this, SLOT(on_propertyCheckbox_changed(int)) );
//slider
if( property.getType() == CameraManager::AUTOTRIGGER ) continue;
QSlider* slider = new QSlider(Qt::Horizontal);
slider->setProperty("CameraProperty", QVariant::fromValue(reinterpret_cast<quintptr>(&property)) );
slider->setProperty("TreeWidgetItem", QVariant::fromValue(reinterpret_cast<quintptr>(it)) );
slider->setTracking(true); //might be wanted
slider->setRange(property.getMinToSlider(), property.getMaxToSLider());
propertiesList.setItemWidget(it, Ui::PropertySlider, slider);
box->setProperty("TreeWidgetSlider", QVariant::fromValue(reinterpret_cast<quintptr>(slider)) );
connect( slider, SIGNAL(valueChanged(int)), this, SLOT(on_propertySlider_changed(int)) );
}
propertiesList.resizeColumnToContents(0);
propertiesList.resizeColumnToContents(1);
propertiesList.resizeColumnToContents(2);
}
示例2: createCurvyForm
QWidget* PrefsDialog::createCurvyForm(ViewInfoThing * viewInfoThing)
{
QGroupBox * groupBox = new QGroupBox(tr("Curvy vs. straight wires"));
QVBoxLayout *layout = new QVBoxLayout;
QLabel * label1 = new QLabel(tr("When you mouse-down and drag on a wire or the leg of a part (as opposed to a connector or a bendpoint) "
"do you want to change the curvature of the wire (or leg) or drag out a new bendpoint?"));
label1->setWordWrap(true);
layout->addWidget(label1);
QLabel * label2 = new QLabel(tr("This checkbox sets the default behavior. "
"You can switch back to the non-default behavior by holding down the Control key (Mac: Command key) when you drag."));
label2->setWordWrap(true);
layout->addWidget(label2);
layout->addSpacing(10);
QCheckBox * checkbox = new QCheckBox("Curvy wires and legs");
checkbox->setProperty("index", viewInfoThing->index);
checkbox->setChecked(viewInfoThing->curvy);
connect(checkbox, SIGNAL(clicked()), this, SLOT(curvyChanged()));
layout->addWidget(checkbox);
groupBox->setLayout(layout);
return groupBox;
}
示例3: AddBooleans
void ParamWidget::AddBooleans(const std::vector<BoolItem>& to_add,
DisplayHint display_hint) {
if (display_hint != kCheckBox) {
throw std::invalid_argument("Invalid display hint");
}
QWidget* row_widget = new QWidget(this);
QHBoxLayout* hbox = new QHBoxLayout(row_widget);
for (const BoolItem& item : to_add) {
ExpectNameNotFound(item.name);
QCheckBox* checkbox =
new QCheckBox(item.name, this);
if (item.initially_checked) {
checkbox->setCheckState(Qt::Checked);
} else {
checkbox->setCheckState(Qt::Unchecked);
}
checkbox->setProperty("param_widget_type", kParamBool);
widgets_[item.name] = checkbox;
hbox->addWidget(checkbox);
connect(checkbox, &QCheckBox::stateChanged,
[this, item](int val) { emit ParamChanged(item.name); });
}
layout_->addWidget(row_widget);
}
示例4: appendShop
void CComputerConfViewPrivate::appendShop()
{
int iCol = m_ptrGridLayout->columnCount();
//
QHBoxLayout * ptrHLayout = new QHBoxLayout;
QCheckBox * ptrCheckBox = new QCheckBox;
ptrCheckBox->setChecked(true);
ptrCheckBox->setProperty("column",iCol-ciHeaderColCount);
//connect(ptrCheckBox,SIGNAL(stateChanged(int)), this, SLOT(onShopActivation(int)));
ptrHLayout->addWidget(ptrCheckBox);
QPushButton * ptrRemShop = new QPushButton;
ptrRemShop->setIcon(QIcon(":/images/minus.png"));
ptrRemShop->setFlat(true);
ptrRemShop->setProperty("column",iCol-ciHeaderColCount);
//connect(ptrRemShop,SIGNAL(clicked ( bool )), this, SLOT(onCompRowRemove()));
ptrHLayout->addWidget(ptrRemShop);
m_ptrGridLayout->addLayout(ptrHLayout,0,iCol,Qt::AlignCenter);
//
QComboBox * ptrComboBox = new QComboBox;
ptrRemShop->setProperty("column",iCol-ciHeaderColCount);
m_ptrGridLayout->addWidget(ptrComboBox,1,iCol);
}
示例5: createItemWidgets
QList<QWidget*> createItemWidgets(const QModelIndex& /*index*/) const
{
// a lump of coal and a piece of elastic will get you through the world
QModelIndex idx = property("goya:creatingWidgetForIndex").value<QModelIndex>();
QWidget *page = new QWidget;
QHBoxLayout *layout = new QHBoxLayout(page);
QCheckBox *checkBox = new QCheckBox;
checkBox->setProperty("fileitem", idx.data());
connect(checkBox, SIGNAL(toggled(bool)), m_parent, SLOT(toggleFileItem(bool)));
QLabel *thumbnail = new QLabel;
QLabel *filename = new QLabel;
QLabel *dateModified = new QLabel;
layout->addWidget(checkBox);
layout->addWidget(thumbnail);
layout->addWidget(filename);
layout->addWidget(dateModified);
page->setFixedSize(600, 200);
return QList<QWidget*>() << page;
}
示例6: Handle
void ItemHandlerCheckbox::Handle (const QDomElement& item,
QWidget *pwidget)
{
QGridLayout *lay = qobject_cast<QGridLayout*> (pwidget->layout ());
QCheckBox *box = new QCheckBox (XSD_->GetLabel (item));
XSD_->SetTooltip (box, item);
box->setObjectName (item.attribute ("property"));
const QVariant& value = XSD_->GetValue (item);
box->setCheckState (value.toBool () ? Qt::Checked : Qt::Unchecked);
connect (box,
SIGNAL (stateChanged (int)),
this,
SLOT (updatePreferences ()));
box->setProperty ("ItemHandler", QVariant::fromValue<QObject*> (this));
box->setProperty ("SearchTerms", QStringList (box->text ()));
lay->addWidget (box, lay->rowCount (), 0, 1, 2, Qt::AlignTop);
}
示例7: foreach
void
ChooseProvidersPage::setFields( const QList<qint64> &fields, qint64 checkedFields )
{
QLayout *fieldsLayout = fieldsBox->layout();
foreach( qint64 field, fields )
{
QString name = Meta::i18nForField( field );
QCheckBox *checkBox = new QCheckBox( name );
fieldsLayout->addWidget( checkBox );
checkBox->setCheckState( ( field & checkedFields ) ? Qt::Checked : Qt::Unchecked );
checkBox->setProperty( "field", field );
connect( checkBox, SIGNAL(stateChanged(int)), SIGNAL(checkedFieldsChanged()) );
}
示例8: createEditorFor
QWidget* CameraParamsWidget::createEditorFor(const calibration::CameraParam& param)
{
if(!param.choices.empty())
{
QComboBox* box = new QComboBox(m_w);
for(uint i = 0; i < param.choices.size(); ++i)
{
box->addItem(
param.choices[i].label.c_str(),
param.choices[i].value
);
if(param.choices[i].value == param.value)
box->setCurrentIndex(i);
}
box->setProperty("paramID", param.id);
connect(box, SIGNAL(activated(int)), SLOT(updateComboBox()));
return box;
}
if(param.minimum == 0 && param.maximum == 1)
{
QCheckBox* box = new QCheckBox(m_w);
box->setChecked(param.value);
box->setProperty("paramID", param.id);
connect(box, SIGNAL(clicked(bool)), SLOT(updateCheckBox(bool)));
return box;
}
QSlider* slider = new QSlider(Qt::Horizontal, m_w);
slider->setMinimum(param.minimum);
slider->setMaximum(param.maximum);
slider->setValue(param.value);
slider->setProperty("paramID", param.id);
connect(slider, SIGNAL(valueChanged(int)), SLOT(updateSlider(int)));
return slider;
}
示例9: appendRow
void CComputerConfViewPrivate::appendRow()
{
//usun ostatni element rozpychajacy
int iRow = m_ptrGridLayout->rowCount();
for(int iCol = 0;iCol<m_ptrGridLayout->columnCount();++iCol)
{
//QLayoutItem * ptrItem = m_ptrGridLayout->itemAtPosition(iRow,iCol);
}
//////////////////////////////////////////////////////////////////////////
QPushButton * ptrRemRow = new QPushButton;
ptrRemRow->setIcon(QIcon(":/images/minus.png"));
ptrRemRow->setFlat(true);
ptrRemRow->setProperty("row",iRow-ciHeaderRowCount);
connect(ptrRemRow,SIGNAL(clicked ( bool )), this, SLOT(onCompRowRemove()));
m_ptrGridLayout->addWidget(ptrRemRow,iRow,RowInd_Remove,Qt::AlignCenter);
//////////////////////////////////////////////////////////////////////////
QCheckBox * ptrCheckBox = new QCheckBox;
ptrCheckBox->setChecked(true);
ptrCheckBox->setProperty("row",iRow-ciHeaderRowCount);
connect(ptrCheckBox,SIGNAL(stateChanged(int)), this, SLOT(onRowActivation(int)));
m_ptrGridLayout->addWidget(ptrCheckBox,iRow,RowInd_Active,Qt::AlignCenter);
//////////////////////////////////////////////////////////////////////////
//QLabel * ptrCompName = new QLabel;
QLineEdit * ptrCompName = new QLineEdit;
ptrCompName->setProperty("row",iRow-ciHeaderRowCount);
connect(ptrCompName,SIGNAL(editingFinished ()), this, SLOT(onCompNameEditFinished()));
m_ptrGridLayout->addWidget(ptrCompName,iRow,RowInd_CompName);
//////////////////////////////////////////////////////////////////////////
//QLabel * ptrCompCode = new QLabel;
QLineEdit * ptrCompCode = new QLineEdit;
ptrCompCode->setProperty("row",iRow-ciHeaderRowCount);
connect(ptrCompCode,SIGNAL(editingFinished ()), this, SLOT(onCompCodeEditFinished()));
m_ptrGridLayout->addWidget(ptrCompCode,iRow,RowInd_CompCode);
//////////////////////////////////////////////////////////////////////////
QLabel * ptrBestPrice = new QLabel;
m_ptrGridLayout->addWidget(ptrBestPrice,iRow,RowInd_BestPrice);
//////////////////////////////////////////////////////////////////////////
for(int iCol = 0;iCol<m_ptrGridLayout->columnCount();++iCol)
{
QSpacerItem * ptrItem = new QSpacerItem(0,0,QSizePolicy::Expanding,QSizePolicy::Expanding);
m_ptrGridLayout->addItem(ptrItem,iRow+1,iCol);
}
}
示例10: render
void MultipleAnswers::render(QWidget *widget)
{
MultipleAnswersQuestion const* qq = question();
QButtonGroup *answerButtons = new QButtonGroup(widget);
answerButtons->setExclusive(false);
QLayout *layout = widget->layout();
debug() << "Rendering a MultipleAnswers question: " << qq->id();
for (auto answer : qq->answers()) {
QCheckBox *answerRadio = new QCheckBox(QString::fromStdString(answer->text()), widget);
answerRadio->setProperty("answerId", answer->id());
answerRadio->setChecked(qq->isChosen(answer));
layout->addWidget(answerRadio);
answerButtons->addButton(answerRadio);
}
QObject::connect(answerButtons, SIGNAL(buttonReleased(QAbstractButton*)),
this, SLOT(toggleAnswerSelection(QAbstractButton*)));
}
示例11: LoadCheats
void CheatDialog::LoadCheats() {
cheats = Core::System::GetInstance().CheatEngine().GetCheats();
ui->tableCheats->setRowCount(cheats.size());
for (size_t i = 0; i < cheats.size(); i++) {
QCheckBox* enabled = new QCheckBox();
enabled->setChecked(cheats[i]->IsEnabled());
enabled->setStyleSheet("margin-left:7px;");
ui->tableCheats->setItem(i, 0, new QTableWidgetItem());
ui->tableCheats->setCellWidget(i, 0, enabled);
ui->tableCheats->setItem(
i, 1, new QTableWidgetItem(QString::fromStdString(cheats[i]->GetName())));
ui->tableCheats->setItem(
i, 2, new QTableWidgetItem(QString::fromStdString(cheats[i]->GetType())));
enabled->setProperty("row", static_cast<int>(i));
connect(enabled, &QCheckBox::stateChanged, this, &CheatDialog::OnCheckChanged);
}
}
示例12: addLevelCheckBox
void MainWindow::addLevelCheckBox(QWidget * iParent, int iLevel, QString iLabel)
{
int nboxes = (int)m_levelCheckBoxes.size();
QCheckBox * checkBox = new QCheckBox(iParent);
//checkBox->setChecked(Qt::Checked);
checkBox->setChecked(Qt::Unchecked);
checkBox->setGeometry(QRect(10, 10 + nboxes*30, 80, 20));
if (!iLabel.isEmpty())
{
checkBox->setText(iLabel);
}
else
{
checkBox->setText("level" + QString::number(iLevel));
}
//checkBox->setProperty("idx", iLevel);
checkBox->setProperty("idx", nboxes);
checkBox->setChecked(true);
checkBox->show();
m_levelCheckBoxes.push_back(checkBox);
connect(checkBox, SIGNAL(clicked()), this, SLOT(levelCheckBoxModified()));
}
示例13: rx
Channels::Channels(QWidget * parent, ModelData & model, GeneralSettings & generalSettings, FirmwareInterface * firmware):
ModelPanel(parent, model, generalSettings, firmware)
{
QGridLayout * gridLayout = new QGridLayout(this);
bool minimize = false;
int col = 1;
if (firmware->getCapability(ChannelsName)) {
minimize=true;
addLabel(gridLayout, tr("Name"), col++);
}
addLabel(gridLayout, tr("Subtrim"), col++, minimize);
addLabel(gridLayout, tr("Min"), col++, minimize);
addLabel(gridLayout, tr("Max"), col++, minimize);
addLabel(gridLayout, tr("Direction"), col++, minimize);
if (IS_TARANIS(GetEepromInterface()->getBoard()))
addLabel(gridLayout, tr("Curve"), col++, minimize);
if (firmware->getCapability(PPMCenter))
addLabel(gridLayout, tr("PPM Center"), col++, minimize);
if (firmware->getCapability(SYMLimits))
addLabel(gridLayout, tr("Linear Subtrim"), col++, true);
for (int i=0; i<firmware->getCapability(Outputs); i++) {
col = 0;
// Channel label
QLabel *label = new QLabel(this);
label->setText(tr("Channel %1").arg(i+1));
label->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum);
gridLayout->addWidget(label, i+1, col++, 1, 1);
// Channel name
int nameLen = firmware->getCapability(ChannelsName);
if (nameLen > 0) {
QLineEdit * name = new QLineEdit(this);
name->setProperty("index", i);
name->setMaxLength(nameLen);
QRegExp rx(CHAR_FOR_NAMES_REGEX);
name->setValidator(new QRegExpValidator(rx, this));
name->setText(model.limitData[i].name);
connect(name, SIGNAL(editingFinished()), this, SLOT(nameEdited()));
gridLayout->addWidget(name, i+1, col++, 1, 1);
}
// Channel offset
limitsGroups << new LimitsGroup(firmware, gridLayout, i+1, col++, model.limitData[i].offset, -1000, 1000, 0);
// Channel min
limitsGroups << new LimitsGroup(firmware, gridLayout, i+1, col++, model.limitData[i].min, -model.getChannelsMax()*10, 0, -1000);
// Channel max
limitsGroups << new LimitsGroup(firmware, gridLayout, i+1, col++, model.limitData[i].max, 0, model.getChannelsMax()*10, 1000);
// Channel inversion
QComboBox * invCB = new QComboBox(this);
invCB->insertItems(0, QStringList() << tr("---") << tr("INV"));
invCB->setProperty("index", i);
invCB->setCurrentIndex((model.limitData[i].revert) ? 1 : 0);
connect(invCB, SIGNAL(currentIndexChanged(int)), this, SLOT(invEdited()));
gridLayout->addWidget(invCB, i+1, col++, 1, 1);
// Curve
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
QComboBox * curveCB = new QComboBox(this);
curveCB->setProperty("index", i);
int numcurves = firmware->getCapability(NumCurves);
for (int j=-numcurves; j<=numcurves; j++) {
curveCB->addItem(CurveReference(CurveReference::CURVE_REF_CUSTOM, j).toString(), j);
}
curveCB->setCurrentIndex(model.limitData[i].curve.value+numcurves);
connect(curveCB, SIGNAL(currentIndexChanged(int)), this, SLOT(curveEdited()));
gridLayout->addWidget(curveCB, i+1, col++, 1, 1);
}
// PPM center
if (firmware->getCapability(PPMCenter)) {
QSpinBox * center = new QSpinBox(this);
center->setProperty("index", i);
center->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
center->setSuffix("us");
center->setMinimum(1375);
center->setMaximum(1625);
center->setValue(1500);
center->setValue(model.limitData[i].ppmCenter + 1500);
connect(center, SIGNAL(editingFinished()), this, SLOT(ppmcenterEdited()));
gridLayout->addWidget(center, i+1, col++, 1, 1);
}
// Symetrical limits
if (firmware->getCapability(SYMLimits)) {
QCheckBox * symlimits = new QCheckBox(this);
symlimits->setProperty("index", i);
symlimits->setChecked(model.limitData[i].symetrical);
connect(symlimits, SIGNAL(toggled(bool)), this, SLOT(symlimitsEdited()));
gridLayout->addWidget(symlimits, i+1, col++, 1, 1);
}
}
示例14: buildConfigureQueueList
QWidget* XletQueuesConfigure::buildConfigureQueueList(QWidget *parent)
{
QWidget *root = new QWidget(parent);
QGridLayout *layout = new QGridLayout(root);
root->setLayout(layout);
layout->addWidget(new QLabel(tr("Queue"), root), 0, 0, Qt::AlignLeft);
QLabel *label_qos = new QLabel(tr("Qos - X (s)"), root);
label_qos->setToolTip(tr(
"This is the threshold in seconds to consider that the answer to a "
"call was too late to be accounted as an answer of quality."));
layout->addWidget(label_qos, 0, 1, Qt::AlignLeft);
QLabel *label_window = new QLabel(tr("Window (s)"), root);
label_window->setToolTip(tr(
"The window is the period of time used to compute the statistics"));
layout->addWidget(label_window, 0, 2, Qt::AlignLeft);
QCheckBox *displayQueue;
QSpinBox *spinBox;
int row;
int column;
QVariantMap statConfig = b_engine->getConfig("guioptions.queuespanel").toMap();
QString xqueueid;
row = 1;
QHashIterator<QString, XInfo *> i = \
QHashIterator<QString, XInfo *>(b_engine->iterover("queues"));
while (i.hasNext()) {
column = 0;
i.next();
QueueInfo * queueinfo = (QueueInfo *) i.value();
xqueueid = queueinfo->xid();
displayQueue = new QCheckBox(queueinfo->queueName(), root);
displayQueue->setProperty("xqueueid", xqueueid);
displayQueue->setProperty("param", "visible");
displayQueue->setChecked(statConfig.value("visible" + xqueueid, true).toBool());
layout->addWidget(displayQueue, row, column++);
connect(displayQueue, SIGNAL(stateChanged(int)),
this, SLOT(changeQueueStatParam(int)));
spinBox = new QSpinBox(root);
spinBox->setAlignment(Qt::AlignCenter);
spinBox->setMaximum(240);
spinBox->setProperty("xqueueid", xqueueid);
spinBox->setProperty("param", "xqos");
spinBox->setValue(statConfig.value("xqos" + xqueueid, 60).toInt());
layout->addWidget(spinBox, row, column++);
connect(spinBox, SIGNAL(valueChanged(int)),
this, SLOT(changeQueueStatParam(int)));
spinBox = new QSpinBox(root);
spinBox->setAlignment(Qt::AlignCenter);
spinBox->setMaximum(3600*3);
spinBox->setProperty("xqueueid", xqueueid);
spinBox->setProperty("param", "window");
spinBox->setValue(statConfig.value("window" + xqueueid, 3600).toInt());
layout->addWidget(spinBox, row, column++);
connect(spinBox, SIGNAL(valueChanged(int)),
this, SLOT(changeQueueStatParam(int)));
row++;
}
return root;
}
示例15: ConfigDialogBase
//.........这里部分代码省略.........
m_writeBack->setChecked( AmarokConfig::writeBack() );
m_writeBack->setVisible( false ); // probably not a usecase
m_writeBackStatistics->setChecked( AmarokConfig::writeBackStatistics() );
m_writeBackStatistics->setEnabled( m_writeBack->isChecked() );
m_writeBackCover->setChecked( AmarokConfig::writeBackCover() );
m_writeBackCover->setEnabled( m_writeBack->isChecked() );
if( m_writeBackCoverDimensions->findData( AmarokConfig::writeBackCoverDimensions() ) != -1 )
m_writeBackCoverDimensions->setCurrentIndex( m_writeBackCoverDimensions->findData( AmarokConfig::writeBackCoverDimensions() ) );
else
m_writeBackCoverDimensions->setCurrentIndex( 1 ); // medium
m_writeBackCoverDimensions->setEnabled( m_writeBackCover->isEnabled() && m_writeBackCover->isChecked() );
m_useCharsetDetector->setChecked( AmarokConfig::useCharsetDetector() );
connect( m_writeBack, SIGNAL(toggled(bool)), this, SIGNAL(changed()) );
connect( m_writeBackStatistics, SIGNAL(toggled(bool)), this, SIGNAL(changed()) );
connect( m_writeBackCover, SIGNAL(toggled(bool)), this, SIGNAL(changed()) );
connect( m_writeBackCoverDimensions, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed()) );
connect( m_useCharsetDetector, SIGNAL(toggled(bool)), this, SIGNAL(changed()) );
StatSyncing::Controller *controller = Amarok::Components::statSyncingController();
StatSyncing::Config *config = controller ? controller->config() : 0;
m_statSyncingConfig = config;
m_statSyncingProvidersView->setModel( config );
m_synchronizeButton->setIcon( KIcon( "amarok_playcount" ) );
m_configureTargetButton->setIcon( KIcon( "configure" ) );
connect( config, SIGNAL(dataChanged(QModelIndex,QModelIndex)), SIGNAL(changed()) );
connect( config, SIGNAL(rowsInserted(QModelIndex,int,int)), SIGNAL(changed()) );
connect( config, SIGNAL(rowsRemoved(QModelIndex,int,int)), SIGNAL(changed()) );
connect( config, SIGNAL(modelReset()), SIGNAL(changed()) );
// Add target button
m_addTargetButton->setEnabled( controller && controller->hasProviderFactories() );
connect( m_addTargetButton, SIGNAL(clicked(bool)), SLOT(slotCreateProviderDialog()) );
// Configure target button
m_configureTargetButton->setEnabled( false );
connect( m_statSyncingProvidersView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
SLOT(slotUpdateProviderConfigureButton()) );
connect( m_configureTargetButton, SIGNAL(clicked(bool)), SLOT(slotConfigureProvider()) );
// Forget target button
connect( m_statSyncingProvidersView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
SLOT(slotUpdateForgetButton()) );
connect( m_forgetTargetsButton, SIGNAL(clicked(bool)), SLOT(slotForgetCollections()) );
// Synchronize button
if( controller )
connect( m_synchronizeButton, SIGNAL(clicked(bool)), controller, SLOT(synchronize()) );
else
m_synchronizeButton->setEnabled( false );
slotUpdateForgetButton();
const qint64 checkedFields = config ? config->checkedFields() : 0;
QMap<qint64, QString> i18nSyncLabels; // to avoid word puzzles, bug 334561
i18nSyncLabels.insert( Meta::valRating, i18nc( "Statistics sync checkbox label",
"Synchronize Ratings" ) );
i18nSyncLabels.insert( Meta::valFirstPlayed, i18nc( "Statistics sync checkbox label",
"Synchronize First Played Times" ) );
i18nSyncLabels.insert( Meta::valLastPlayed, i18nc( "Statistics sync checkbox label",
"Synchronize Last Played Times" ) );
i18nSyncLabels.insert( Meta::valPlaycount, i18nc( "Statistics sync checkbox label",
"Synchronize Playcounts" ) );
i18nSyncLabels.insert( Meta::valLabel, i18nc( "Statistics sync checkbox label",
"Synchronize Labels" ) );
foreach( qint64 field, StatSyncing::Controller::availableFields() )
{
QString name = i18nSyncLabels.value( field );
if( name.isEmpty() )
{
name = i18nc( "%1 is field name such as Play Count (this string is only used "
"as a fallback)", "Synchronize %1", Meta::i18nForField( field ) );
warning() << Q_FUNC_INFO << "no explicit traslation for" << name << "using fallback";
}
QCheckBox *checkBox = new QCheckBox( name );
if( field == Meta::valLabel ) // special case, we want plural:
{
QHBoxLayout *lineLayout = new QHBoxLayout();
QLabel *button = new QLabel();
button->setObjectName( "configureLabelExceptions" );
connect( button, SIGNAL(linkActivated(QString)),
SLOT(slotConfigureExcludedLabels()) );
lineLayout->addWidget( checkBox );
lineLayout->addWidget( button );
lineLayout->addItem( new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ) );
m_statSyncingFieldsLayout->addLayout( lineLayout );
slotUpdateConfigureExcludedLabelsLabel();
}
else
{
m_statSyncingFieldsLayout->addWidget( checkBox );
}
checkBox->setCheckState( ( field & checkedFields ) ? Qt::Checked : Qt::Unchecked );
checkBox->setProperty( "field", field );
connect( checkBox, SIGNAL(stateChanged(int)), SIGNAL(changed()) );
}