void SubToolBar::initArrowLabel() { m_arrowLabel = new QLabel(this); //arrow QButtonGroup* arrowBtnGroup = new QButtonGroup(); arrowBtnGroup->setExclusive(true); QList<ToolButton*> arrowBtnList; ToolButton* arrowFineLine = new ToolButton(); arrowFineLine->setObjectName("ArrowFine"); arrowBtnGroup->addButton(arrowFineLine); arrowBtnList.append(arrowFineLine); ToolButton* arrowMediumLine = new ToolButton(); arrowMediumLine->setObjectName("ArrowMedium"); arrowBtnGroup->addButton(arrowMediumLine); arrowBtnList.append(arrowMediumLine); ToolButton* arrowThickLine = new ToolButton(); arrowThickLine->setObjectName("ArrowThick"); arrowBtnGroup->addButton(arrowThickLine); arrowBtnList.append(arrowThickLine); //line QButtonGroup* lineBtnGroup = new QButtonGroup(); lineBtnGroup->setExclusive(true); //rectangle, oval... ToolButton* fineLine = new ToolButton(); fineLine->setObjectName("ArrowFineLine"); lineBtnGroup->addButton(fineLine); arrowBtnList.append(fineLine); ToolButton* mediumLine = new ToolButton(); mediumLine->setObjectName("ArrowMediumLine"); lineBtnGroup->addButton(mediumLine); arrowBtnList.append(mediumLine); ToolButton* thickLine = new ToolButton(); thickLine->setObjectName("ArrowThickLine"); lineBtnGroup->addButton(thickLine); arrowBtnList.append(thickLine); //separator line... QLabel* vSeparatorLine = new QLabel(); vSeparatorLine->setFixedSize(1, 16); vSeparatorLine->setObjectName("VerticalSeparatorLine"); QButtonGroup* styleBtnGroup = new QButtonGroup; styleBtnGroup->setExclusive(true); ToolButton* lineBtn = new ToolButton(); lineBtn->setObjectName("LineBtn"); styleBtnGroup->addButton(lineBtn, 0); ToolButton* arrowBtn = new ToolButton(); arrowBtn->setObjectName("ArrowBtn"); arrowBtn->setChecked(true); styleBtnGroup->addButton(arrowBtn, 1); if (ConfigSettings::instance()->value("arrow", "is_straight").toBool()) { lineBtn->setChecked(true); } else { arrowBtn->setChecked(true); } int arrowWidthIndex = ConfigSettings::instance()->value("arrow", "arrow_linewidth_index").toInt(); int sLineWidthIndex = ConfigSettings::instance()->value("arrow", "straightline_linewidth").toInt(); arrowBtnList[arrowWidthIndex]->setChecked(true); arrowBtnList[sLineWidthIndex+3]->setChecked(true); QHBoxLayout* arrowLayout = new QHBoxLayout(); arrowLayout->setMargin(0); arrowLayout->setSpacing(BUTTON_SPACING); arrowLayout->addSpacing(1); for (int j = 0; j < arrowBtnList.length(); j++) { arrowLayout->addWidget(arrowBtnList[j]); // arrowLayout->addSpacing(BUTTON_SPACING); connect(arrowBtnList[j], &ToolButton::clicked, this, [=]{ if (j < 3) { ConfigSettings::instance()->setValue("arrow", "arrow_linewidth_index", j); } else { ConfigSettings::instance()->setValue("arrow", "straightline_linewidth_index", j - 3); } }); } arrowLayout->addSpacing(16); arrowLayout->addWidget(vSeparatorLine); arrowLayout->addSpacing(16); arrowLayout->addWidget(lineBtn); arrowLayout->addWidget(arrowBtn); arrowLayout->addStretch(); m_arrowLabel->setLayout(arrowLayout); addWidget(m_arrowLabel); fineLine->hide(); mediumLine->hide(); thickLine->hide(); connect(arrowBtn, &ToolButton::toggled, this, [=](bool checked){ if (checked) { arrowFineLine->show(); arrowMediumLine->show(); arrowThickLine->show(); fineLine->hide(); mediumLine->hide(); thickLine->hide(); } else { arrowFineLine->hide(); arrowMediumLine->hide(); arrowThickLine->hide(); fineLine->show(); mediumLine->show(); thickLine->show(); } ConfigSettings::instance()->setValue("arrow", "is_straight", !checked); }); connect(this, &SubToolBar::shapeChanged, this, [=]{ if (ConfigSettings::instance()->value("arrow", "is_straight").toBool()) { arrowFineLine->hide(); arrowMediumLine->hide(); arrowThickLine->hide(); fineLine->show(); mediumLine->show(); thickLine->show(); } else { arrowFineLine->show(); arrowMediumLine->show(); arrowThickLine->show(); fineLine->hide(); mediumLine->hide(); thickLine->hide(); } int arrowLineWidth = ConfigSettings::instance()->value("arrow", "arrow_linewidth_index").toInt(); int sLineWidth = ConfigSettings::instance()->value("arrow", "straightline_linewidth_index").toInt(); arrowBtnList[arrowLineWidth]->setChecked(true); arrowBtnList[sLineWidth+3]->setChecked(true); }); }
//------------------------------------------------------------------------------ QWidget *FeedPropertiesDialog::createGeneralTab() { QWidget *tab = new QWidget(); QGridLayout *layoutGeneralGrid = new QGridLayout(); QLabel *labelTitleCapt = new QLabel(tr("Title:")); QLabel *labelHomepageCapt = new QLabel(tr("Homepage:")); QLabel *labelURLCapt = new QLabel(tr("Feed URL:")); QHBoxLayout *layoutGeneralTitle = new QHBoxLayout(); editTitle = new LineEdit(); ToolButton *loadTitleButton = new ToolButton(); loadTitleButton->setIcon(QIcon(":/images/updateFeed")); loadTitleButton->setIconSize(QSize(16, 16)); loadTitleButton->setToolTip(tr("Load Title")); loadTitleButton->setFocusPolicy(Qt::NoFocus); QMenu *selectIconMenu = new QMenu(); selectIconMenu->addAction(tr("Load Favicon")); selectIconMenu->addSeparator(); selectIconMenu->addAction(tr("Select Icon...")); selectIconButton_ = new QToolButton(this); selectIconButton_->setIconSize(QSize(16, 16)); selectIconButton_->setToolTip(tr("Select Icon")); selectIconButton_->setFocusPolicy(Qt::NoFocus); selectIconButton_->setPopupMode(QToolButton::MenuButtonPopup); selectIconButton_->setMenu(selectIconMenu); layoutGeneralTitle->addWidget(editTitle, 1); layoutGeneralTitle->addWidget(loadTitleButton); layoutGeneralTitle->addWidget(selectIconButton_); editURL = new LineEdit(); disableUpdate_ = new QCheckBox(tr("Disable update")); disableUpdate_->setChecked(false); updateEnable_ = new QCheckBox(tr("Automatically update every")); updateInterval_ = new QSpinBox(); updateInterval_->setEnabled(false); updateInterval_->setRange(1, 9999); connect(updateEnable_, SIGNAL(toggled(bool)), updateInterval_, SLOT(setEnabled(bool))); updateIntervalType_ = new QComboBox(this); updateIntervalType_->setEnabled(false); QStringList intervalTypeList; intervalTypeList << tr("seconds") << tr("minutes") << tr("hours"); updateIntervalType_->addItems(intervalTypeList); connect(updateEnable_, SIGNAL(toggled(bool)), updateIntervalType_, SLOT(setEnabled(bool))); QHBoxLayout *updateFeedsLayout = new QHBoxLayout(); updateFeedsLayout->setMargin(0); updateFeedsLayout->addWidget(updateEnable_); updateFeedsLayout->addWidget(updateInterval_); updateFeedsLayout->addWidget(updateIntervalType_); updateFeedsLayout->addStretch(); connect(disableUpdate_, SIGNAL(toggled(bool)), updateEnable_, SLOT(setDisabled(bool))); connect(disableUpdate_, SIGNAL(toggled(bool)), updateInterval_, SLOT(setDisabled(bool))); connect(disableUpdate_, SIGNAL(toggled(bool)), updateIntervalType_, SLOT(setDisabled(bool))); starredOn_ = new QCheckBox(tr("Starred")); displayOnStartup = new QCheckBox(tr("Display in new tab on startup")); duplicateNewsMode_ = new QCheckBox(tr("Automatically delete duplicate news")); QHBoxLayout *layoutGeneralHomepage = new QHBoxLayout(); labelHomepage = new QLabel(); labelHomepage->setOpenExternalLinks(true); layoutGeneralHomepage->addWidget(labelHomepageCapt); layoutGeneralHomepage->addWidget(labelHomepage, 1); layoutGeneralGrid->addWidget(labelTitleCapt, 0, 0); layoutGeneralGrid->addLayout(layoutGeneralTitle, 0 ,1); layoutGeneralGrid->addWidget(labelURLCapt, 1, 0); layoutGeneralGrid->addWidget(editURL, 1, 1); QVBoxLayout *tabLayout = new QVBoxLayout(tab); tabLayout->setMargin(10); tabLayout->setSpacing(5); tabLayout->addLayout(layoutGeneralGrid); tabLayout->addLayout(layoutGeneralHomepage); tabLayout->addSpacing(15); tabLayout->addWidget(disableUpdate_); tabLayout->addLayout(updateFeedsLayout); tabLayout->addSpacing(15); tabLayout->addWidget(starredOn_); tabLayout->addWidget(displayOnStartup); tabLayout->addWidget(duplicateNewsMode_); tabLayout->addStretch(); connect(loadTitleButton, SIGNAL(clicked()), this, SLOT(setDefaultTitle())); connect(selectIconButton_, SIGNAL(clicked()), this, SLOT(selectIcon())); connect(selectIconMenu->actions().at(0), SIGNAL(triggered()), this, SLOT(loadDefaultIcon())); connect(selectIconMenu->actions().at(2), SIGNAL(triggered()), this, SLOT(selectIcon())); if (!isFeed_) { loadTitleButton->hide(); selectIconButton_->hide(); labelURLCapt->hide(); editURL->hide(); labelHomepageCapt->hide(); labelHomepage->hide(); starredOn_->hide(); duplicateNewsMode_->hide(); } return tab; }