HashingStatus::HashingStatus(QWidget *parent) : QWidget(parent) { QHBoxLayout *hbox = new QHBoxLayout(this); hbox->setMargin(0); hbox->setSpacing(6); movie = new QMovie(":/images/loader/16-loader.gif"); movie->setSpeed(80); // 2x speed hashloader = new QLabel(this); hashloader->setMovie(movie); hbox->addWidget(hashloader); movie->jumpToNextFrame(); // to calculate the real width statusHashing = new StatusLabel(hbox, movie->frameRect().width() + hbox->spacing(), this); hbox->addWidget(statusHashing); QSpacerItem *horizontalSpacer = new QSpacerItem(1000, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); hbox->addItem(horizontalSpacer); setLayout(hbox); hashloader->hide(); statusHashing->hide(); connect(NotifyQt::getInstance(), SIGNAL(hashingInfoChanged(const QString&)), SLOT(updateHashingInfo(const QString&))); }
OptionsHeader::OptionsHeader(const QString &AIconKey, const QString &ACaption, QWidget *AParent) : QFrame(AParent) { setObjectName("wdtOptionsHeader"); QHBoxLayout *hlayout = new QHBoxLayout(this); hlayout->setContentsMargins(0,hlayout->spacing()*1.5,0,0); QLabel *icon = new QLabel(this); icon->setObjectName("optionsIconLabel"); icon->setFixedSize(20,20); IconStorage::staticStorage(RSR_STORAGE_MENUICONS)->insertAutoIcon(icon,AIconKey,0,0,"pixmap"); hlayout->addWidget(icon); if (!icon->pixmap()) icon->setVisible(false); QLabel *caption = new QLabel(this); caption->setObjectName("optionsCaptionLabel"); caption->setText(ACaption); hlayout->addWidget(caption); hlayout->addStretch(); }
void BtSearchOptionsArea::initView() { namespace DU = util::directory; QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); this->setSizePolicy(sizePolicy); hboxLayout = new QHBoxLayout(this); searchGroupBox = new QGroupBox(this); gridLayout = new QGridLayout(searchGroupBox); gridLayout->setHorizontalSpacing(3); // ******** label for search text editor*********** m_searchTextLabel = new QLabel(tr("Search for:"), searchGroupBox); m_searchTextLabel->setWordWrap(false); gridLayout->addWidget(m_searchTextLabel, 0, 0); // **********Buttons****************** m_searchButton = new QPushButton(this); m_searchButton->setText(tr("&Search")); m_searchButton->setIcon(DU::getIcon(CResMgr::searchdialog::icon)); m_searchButton->setToolTip(tr("Start to search the text in the chosen works")); gridLayout->addWidget(m_searchButton, 0, 2); m_chooseModulesButton = new QPushButton(tr("Ch&oose..."), searchGroupBox); m_chooseModulesButton->setIcon(DU::getIcon(CResMgr::searchdialog::chooseworks_icon)); m_chooseModulesButton->setToolTip( tr("Choose works for the search")); gridLayout->addWidget(m_chooseModulesButton, 2, 2); m_chooseRangeButton = new QPushButton(tr("S&etup..."), searchGroupBox); m_chooseRangeButton->setIcon(DU::getIcon(CResMgr::searchdialog::setupscope_icon)); m_chooseRangeButton->setToolTip(tr("Configure predefined scopes for search")); gridLayout->addWidget(m_chooseRangeButton, 3, 2); // ************* Search type (AND/OR) selector *************************************** QHBoxLayout* typeSelectorLayout = new QHBoxLayout(); int tsLeft, tsTop, tsRight, tsBottom; // Added space looks nicer and enhances readability typeSelectorLayout->getContentsMargins(&tsLeft, &tsTop, &tsRight, &tsBottom); typeSelectorLayout->setContentsMargins(tsLeft, 0, tsRight, tsBottom + util::tool::mWidth(this, 1) ); typeSelectorLayout->setSpacing(typeSelectorLayout->spacing() + util::tool::mWidth(this, 1)); QHBoxLayout* fullButtonLayout = new QHBoxLayout(); fullButtonLayout->setSpacing(util::tool::mWidth(this, 1) / 2); m_typeAndButton = new QRadioButton(tr("All words")); m_typeAndButton->setChecked(true); m_typeOrButton = new QRadioButton(tr("Some words")); m_typeFreeButton = new QRadioButton(tr("Free")); m_typeAndButton->setToolTip(tr("All of the words (AND is added between the words)")); m_typeOrButton->setToolTip(tr("Some of the words (OR is added between the words)")); m_typeFreeButton->setToolTip(tr("Full lucene syntax")); m_helpLabel = new QLabel(tr(" (<a href='syntax_help'>full syntax</a>)")); m_helpLabel->setToolTip(tr("Click the link to get help for search syntax")); typeSelectorLayout->addWidget(m_typeAndButton); typeSelectorLayout->addWidget(m_typeOrButton); fullButtonLayout->addWidget(m_typeFreeButton); fullButtonLayout->addWidget(m_helpLabel); typeSelectorLayout->addLayout(fullButtonLayout); gridLayout->addLayout(typeSelectorLayout, 1, 1, 1, -1, Qt::AlignLeft | Qt::AlignTop); // ************* Label for search range/scope selector ************* m_searchScopeLabel = new QLabel(tr("Scope:"), searchGroupBox); m_searchScopeLabel->setWordWrap(false); gridLayout->addWidget(m_searchScopeLabel, 3, 0); // ***********Range/scope selector combo box*********** m_rangeChooserCombo = new QComboBox(searchGroupBox); QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Fixed); sizePolicy2.setHorizontalStretch(0); sizePolicy2.setVerticalStretch(0); sizePolicy2.setHeightForWidth(m_rangeChooserCombo->sizePolicy().hasHeightForWidth()); m_rangeChooserCombo->setSizePolicy(sizePolicy2); m_rangeChooserCombo->setToolTip(tr("Choose the scope (books/chapters/verses to search in).<br />Applicable for Bibles and commentaries.")); gridLayout->addWidget(m_rangeChooserCombo, 3, 1); // ************* Search text combo box ******************* m_searchTextCombo = new CHistoryComboBox(searchGroupBox); sizePolicy2.setHeightForWidth(m_searchTextCombo->sizePolicy().hasHeightForWidth()); m_searchTextCombo->setSizePolicy(sizePolicy2); m_searchTextCombo->setFocusPolicy(Qt::WheelFocus); m_searchTextCombo->setProperty("sizeLimit", QVariant(25)); m_searchTextCombo->setProperty("duplicatesEnabled", QVariant(false)); m_searchTextCombo->setToolTip(tr("The text you want to search for")); m_searchTextCombo->setInsertPolicy(QComboBox::NoInsert); gridLayout->addWidget(m_searchTextCombo, 0, 1); m_modulesLabel = new QLabel(tr("Works:"), searchGroupBox); gridLayout->addWidget(m_modulesLabel, 2, 0); m_modulesCombo = new QComboBox(searchGroupBox); m_modulesCombo->setDuplicatesEnabled(false); gridLayout->addWidget(m_modulesCombo, 2, 1); hboxLayout->addWidget(searchGroupBox); // Set the minimum size before the widgets are populated with data. // Otherwise we will get problems with sizing. setMinimumSize(minimumSizeHint()); refreshRanges(); //set the initial focus m_searchTextCombo->setFocus(); // event filter to prevent the Return/Enter presses in the combo box doing something // in the parent widget m_searchTextCombo->installEventFilter(this); }