void TwitterApiDMessageDialog::setupUi( QWidget *mainWidget ) { QLabel *lblTo = new QLabel( i18nc("Send message to", "To:"), this); d->comboFriendsList = new KComboBox(this); d->comboFriendsList->setDuplicatesEnabled(false); KPushButton *btnReload = new KPushButton(this); btnReload->setToolTip(i18n("Reload friends list")); btnReload->setIcon(KIcon("view-refresh")); btnReload->setMaximumWidth(25); connect( btnReload, SIGNAL(clicked(bool)), SLOT(reloadFriendslist()) ); QVBoxLayout *mainLayout = new QVBoxLayout(mainWidget); QHBoxLayout *toLayout = new QHBoxLayout; toLayout->addWidget(lblTo); toLayout->addWidget(d->comboFriendsList); toLayout->addWidget(btnReload); mainLayout->addLayout(toLayout); d->editor = new Choqok::UI::TextEdit( d->account->microblog()->postCharLimit() ); connect( d->editor, SIGNAL(returnPressed(QString)), SLOT(submitPost(QString)) ); mainLayout->addWidget(d->editor); d->editor->setFocus(); }
KSwitchLanguageDialog::KSwitchLanguageDialog( QWidget *parent ) : KDialog(parent), d(new KSwitchLanguageDialogPrivate(this)) { setCaption(i18n("Switch Application Language")); setButtons(Ok | Cancel | Default); setDefaultButton(Ok); connect(this, SIGNAL(okClicked()), SLOT(slotOk())); connect(this, SIGNAL(defaultClicked()), SLOT(slotDefault())); d->page = new QWidget( this ); setMainWidget(d->page); QVBoxLayout *topLayout = new QVBoxLayout( d->page ); topLayout->setMargin( 0 ); QLabel *label = new QLabel( i18n("Please choose the language which should be used for this application:"), d->page ); topLayout->addWidget( label ); QHBoxLayout *languageHorizontalLayout = new QHBoxLayout(); topLayout->addLayout(languageHorizontalLayout); d->languagesLayout = new QGridLayout(); languageHorizontalLayout->addLayout(d->languagesLayout); languageHorizontalLayout->addStretch(); const QStringList defaultLanguages = d->applicationLanguageList(); int count = defaultLanguages.count(); for (int i = 0; i < count; ++i) { QString language = defaultLanguages[i]; bool primaryLanguage = (i == 0); d->addLanguageButton(language, primaryLanguage); } if (!count) { d->addLanguageButton(KGlobal::locale()->defaultLanguage(), true); } QHBoxLayout *addButtonHorizontalLayout = new QHBoxLayout(); topLayout->addLayout(addButtonHorizontalLayout); KPushButton *addLangButton = new KPushButton(i18n("Add Fallback Language"), d->page); addLangButton->setToolTip(i18n("Adds one more language which will be used if other translations do not contain a proper translation.")); connect(addLangButton, SIGNAL(clicked()), this, SLOT(slotAddLanguageButton())); addButtonHorizontalLayout->addWidget(addLangButton); addButtonHorizontalLayout->addStretch(); topLayout->addStretch(10); }
KPushButton * PostWidget::addButton(const QString & objName, const QString & toolTip, const KIcon & icon) { KPushButton * button = new KPushButton(icon, QString(), _mainWidget); button->setObjectName(objName); button->setToolTip(toolTip); button->setIconSize(QSize(16,16)); button->setMinimumSize(QSize(20, 20)); button->setMaximumSize(QSize(20, 20)); button->setFlat(true); button->setVisible(false); button->setCursor(Qt::PointingHandCursor); d->mUiButtons.insert(objName, button); d->buttonsLayout->addWidget( button, 1, d->mUiButtons.count() ); return button; }
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; }
CollectionSetup::CollectionSetup( QWidget *parent ) : QWidget( parent ) , m_rescanDirAction( new QAction( this ) ) { m_ui.setupUi(this); setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); setObjectName( "CollectionSetup" ); s_instance = this; if( KGlobalSettings::graphicEffectsLevel() != KGlobalSettings::NoEffects ) m_ui.view->setAnimated( true ); connect( m_ui.view, SIGNAL(clicked(QModelIndex)), this, SIGNAL(changed()) ); connect( m_ui.view, SIGNAL(pressed(QModelIndex)), this, SLOT(slotPressed(QModelIndex)) ); connect( m_rescanDirAction, SIGNAL(triggered()), this, SLOT(slotRescanDirTriggered()) ); KPushButton *rescan = new KPushButton( KIcon( "collection-rescan-amarok" ), i18n( "Full rescan" ), m_ui.buttonContainer ); rescan->setToolTip( i18n( "Rescan your entire collection. This will <i>not</i> delete any statistics." ) ); connect( rescan, SIGNAL(clicked()), CollectionManager::instance(), SLOT(startFullScan()) ); KPushButton *import = new KPushButton( KIcon( "tools-wizard" ), i18n( "Import" ), m_ui.buttonContainer ); import->setToolTip( i18n( "Import collection and/or statistics from older Amarok versions, the batch scanner or media players." ) ); connect( import, SIGNAL(clicked()), this, SLOT(importCollection()) ); QHBoxLayout *buttonLayout = new QHBoxLayout(); buttonLayout->addWidget( rescan ); buttonLayout->addWidget( import ); m_ui.buttonContainer->setLayout( buttonLayout ); m_recursive = new QCheckBox( i18n("&Scan folders recursively (requires full rescan if newly checked)"), m_ui.checkboxContainer ); m_monitor = new QCheckBox( i18n("&Watch folders for changes"), m_ui.checkboxContainer ); connect( m_recursive, SIGNAL(toggled(bool)), this, SIGNAL(changed()) ); connect( m_monitor , SIGNAL(toggled(bool)), this, SIGNAL(changed()) ); QVBoxLayout *checkboxLayout = new QVBoxLayout(); checkboxLayout->addWidget( m_recursive ); checkboxLayout->addWidget( m_monitor ); m_ui.checkboxContainer->setLayout( checkboxLayout ); m_recursive->setToolTip( i18n( "If selected, Amarok will read all subfolders." ) ); m_monitor->setToolTip( i18n( "If selected, the collection folders will be watched " "for changes.\nThe watcher will not notice changes behind symbolic links." ) ); m_recursive->setChecked( AmarokConfig::scanRecursively() ); m_monitor->setChecked( AmarokConfig::monitorChanges() ); // set the model _after_ constructing the checkboxes m_model = new CollectionFolder::Model( this ); m_ui.view->setModel( m_model ); #ifndef Q_OS_WIN m_ui.view->setRootIndex( m_model->setRootPath( QDir::rootPath() ) ); #else m_ui.view->setRootIndex( m_model->setRootPath( m_model->myComputer().toString() ) ); #endif Collections::Collection *primaryCollection = CollectionManager::instance()->primaryCollection(); QStringList dirs = primaryCollection ? primaryCollection->property( "collectionFolders" ).toStringList() : QStringList(); m_model->setDirectories( dirs ); // make sure that the tree is expanded to show all selected items foreach( const QString &dir, dirs ) { QModelIndex index = m_model->index( dir ); m_ui.view->scrollTo( index, QAbstractItemView::EnsureVisible ); }
ConfigBackendsPage::ConfigBackendsPage( Config *_config, QWidget *parent ) : ConfigPageBase( parent ), config( _config ) { QVBoxLayout *box = new QVBoxLayout( this ); QFont groupFont; groupFont.setBold( true ); QLabel *lCdRipper = new QLabel( i18n("CD ripper"), this ); lCdRipper->setFont( groupFont ); box->addWidget( lCdRipper ); box->addSpacing( ConfigDialogSpacingSmall ); QHBoxLayout *ripperBox = new QHBoxLayout(); ripperBox->addSpacing( ConfigDialogOffset ); box->addLayout( ripperBox ); QLabel *lSelectorRipper = new QLabel( i18n("Use plugin:"), this ); ripperBox->addWidget( lSelectorRipper ); ripperBox->setStretchFactor( lSelectorRipper, 2 ); cSelectorRipper = new KComboBox( this ); cSelectorRipper->addItems( config->data.backends.rippers ); ripperBox->addWidget( cSelectorRipper ); ripperBox->setStretchFactor( cSelectorRipper, 1 ); connect( cSelectorRipper, SIGNAL(activated(int)), this, SLOT(somethingChanged()) ); connect( cSelectorRipper, SIGNAL(activated(const QString&)), this, SLOT(ripperChanged(const QString&)) ); pConfigureRipper = new KPushButton( KIcon("configure"), "", this ); pConfigureRipper->setFixedSize( cSelectorRipper->sizeHint().height(), cSelectorRipper->sizeHint().height() ); pConfigureRipper->setFlat( true ); ripperBox->addWidget( pConfigureRipper ); ripperBox->setStretchFactor( pConfigureRipper, 1 ); connect( pConfigureRipper, SIGNAL(clicked()), this, SLOT(configureRipper()) ); box->addSpacing( ConfigDialogSpacingBig ); QLabel *lFilters = new QLabel( i18n("Filters"), this ); lFilters->setFont( groupFont ); box->addWidget( lFilters ); box->addSpacing( ConfigDialogSpacingSmall ); QHBoxLayout *filterBox = new QHBoxLayout(); filterBox->addSpacing( ConfigDialogOffset ); box->addLayout( filterBox ); QGridLayout *filterGrid = new QGridLayout(); int row = 0; foreach( const QString filterPluginName, config->data.backends.filters ) { if( row == 0 ) { QLabel *lSelectorFilter = new QLabel( i18n("Enable plugins:"), this ); filterGrid->addWidget( lSelectorFilter, row, 0 ); } QCheckBox *newCheckBox = new QCheckBox( filterPluginName, this ); newCheckBox->setChecked( config->data.backends.enabledFilters.contains(filterPluginName) ); filterGrid->addWidget( newCheckBox, row, 1 ); filterCheckBoxes.append( newCheckBox ); connect( newCheckBox, SIGNAL(stateChanged(int)), this, SLOT(somethingChanged()) ); KPushButton *newConfigButton = new KPushButton( KIcon("configure"), "", this ); newConfigButton->setFixedSize( cSelectorRipper->sizeHint().height(), cSelectorRipper->sizeHint().height() ); newConfigButton->setFlat( true ); filterGrid->addWidget( newConfigButton, row, 2 ); connect( newConfigButton, SIGNAL(clicked()), this, SLOT(configureFilter()) ); filterConfigButtons.append( newConfigButton ); FilterPlugin *plugin = qobject_cast<FilterPlugin*>(config->pluginLoader()->backendPluginByName(filterPluginName)); if( plugin ) { newConfigButton->setEnabled( plugin->isConfigSupported(BackendPlugin::General,"") ); } else { newConfigButton->setEnabled( false ); } if( newConfigButton->isEnabled() ) newConfigButton->setToolTip( i18n("Configure %1 ...",filterPluginName) ); row++; } filterGrid->setColumnStretch( 0, 2 ); filterGrid->setColumnStretch( 1, 1 ); filterBox->addLayout( filterGrid ); box->addSpacing( ConfigDialogSpacingBig ); QLabel *lPriorities = new QLabel( i18n("Priorities"), this ); lPriorities->setFont( groupFont ); box->addWidget( lPriorities ); box->addSpacing( ConfigDialogSpacingSmall ); QVBoxLayout *formatBox = new QVBoxLayout(); box->addLayout( formatBox, 1 ); QHBoxLayout *formatSelectorBox = new QHBoxLayout(); formatSelectorBox->addSpacing( ConfigDialogOffset ); formatBox->addLayout( formatSelectorBox ); QLabel *lSelectorFormat = new QLabel( i18n("Configure plugin priorities for format:"), this ); formatSelectorBox->addWidget( lSelectorFormat ); cSelectorFormat = new KComboBox( this ); cSelectorFormat->addItems( config->pluginLoader()->formatList(PluginLoader::Possibilities(PluginLoader::Encode|PluginLoader::Decode|PluginLoader::ReplayGain),PluginLoader::CompressionType(PluginLoader::InferiorQuality|PluginLoader::Lossy|PluginLoader::Lossless|PluginLoader::Hybrid)) ); cSelectorFormat->removeItem( cSelectorFormat->findText("wav") ); cSelectorFormat->removeItem( cSelectorFormat->findText("audio cd") ); formatSelectorBox->addWidget( cSelectorFormat ); connect( cSelectorFormat, SIGNAL(activated(const QString&)), this, SLOT(formatChanged(const QString&)) ); formatSelectorBox->addStretch(); QHBoxLayout *formatBackendsBox = new QHBoxLayout(); formatBackendsBox->addSpacing( ConfigDialogOffset ); formatBox->addLayout( formatBackendsBox ); decoderList = new BackendsListWidget( i18n("Decoder"), config, this ); formatBackendsBox->addWidget( decoderList ); connect( decoderList, SIGNAL(orderChanged()), this, SLOT(somethingChanged()) ); encoderList = new BackendsListWidget( i18n("Encoder"), config, this ); formatBackendsBox->addWidget( encoderList ); connect( encoderList, SIGNAL(orderChanged()), this, SLOT(somethingChanged()) ); replaygainList = new BackendsListWidget( i18n("Replay Gain"), config, this ); formatBackendsBox->addWidget( replaygainList ); connect( replaygainList, SIGNAL(orderChanged()), this, SLOT(somethingChanged()) ); QHBoxLayout *optimizationsBox = new QHBoxLayout(); optimizationsBox->addSpacing( ConfigDialogOffset ); formatBox->addLayout( optimizationsBox ); optimizationsBox->addStretch(); pShowOptimizations = new KPushButton( KIcon("games-solve"), i18n("Show possible optimizations"), this ); optimizationsBox->addWidget( pShowOptimizations ); connect( pShowOptimizations, SIGNAL(clicked()), this, SLOT(showOptimizations()) ); optimizationsBox->addStretch(); box->addStretch( 2 ); ripperChanged( cSelectorRipper->currentText() ); formatChanged( cSelectorFormat->currentText() ); }