K3b::VideoDVDRippingView::VideoDVDRippingView( QWidget* parent ) : K3b::MediaContentsView( true, K3b::Medium::ContentVideoDVD, K3b::Device::MEDIA_DVD_ALL, K3b::Device::STATE_INCOMPLETE|K3b::Device::STATE_COMPLETE, parent ), d( new Private ) { // toolbox // ---------------------------------------------------------------------------------- d->toolBox = new KToolBar( mainWidget() ); KUrlLabel* showFilesLabel = new KUrlLabel( d->toolBox ); showFilesLabel->setContentsMargins( style()->pixelMetric( QStyle::PM_LayoutLeftMargin ), 0, style()->pixelMetric( QStyle::PM_LayoutRightMargin ), 0 ); showFilesLabel->setText( i18n("Show files") ); showFilesLabel->setWhatsThis( i18n("Shows plain Video DVD vob files from the DVD " "(including decryption) for further processing with another application") ); connect( showFilesLabel, SIGNAL(leftClickedUrl()), this, SLOT(slotShowFiles()) ); d->labelLength = new QLabel( d->toolBox ); d->labelLength->setAlignment( Qt::AlignVCenter | Qt::AlignRight ); d->labelLength->setContentsMargins( style()->pixelMetric( QStyle::PM_LayoutLeftMargin ), 0, style()->pixelMetric( QStyle::PM_LayoutRightMargin ), 0 ); d->delegate = new VideoDVDTitleDelegate( this ); d->model = new VideoDVDTitleModel( this ); // the title view // ---------------------------------------------------------------------------------- d->view = new QTreeView( mainWidget() ); d->view->setItemDelegate( d->delegate ); d->view->setSelectionMode( QAbstractItemView::ExtendedSelection ); d->view->setModel( d->model ); d->view->setRootIsDecorated( false ); d->view->header()->setResizeMode( QHeaderView::ResizeToContents ); d->view->setContextMenuPolicy( Qt::CustomContextMenu ); d->view->installEventFilter( this ); connect( d->view, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotContextMenu(QPoint)) ); // general layout // ---------------------------------------------------------------------------------- QVBoxLayout* mainGrid = new QVBoxLayout( mainWidget() ); mainGrid->addWidget( d->toolBox ); mainGrid->addWidget( d->view ); mainGrid->setContentsMargins( 0, 0, 0, 0 ); mainGrid->setSpacing( 0 ); setLeftPixmap( K3b::Theme::MEDIA_LEFT ); setRightPixmap( K3b::Theme::MEDIA_VIDEO ); initActions(); d->toolBox->addAction( actionCollection()->action("start_rip") ); d->toolBox->addSeparator(); d->toolBox->addWidget( showFilesLabel ); d->toolBox->addAction( new KToolBarSpacerAction( d->toolBox ) ); d->toolBox->addWidget( d->labelLength ); }
bool KrToolResultTable::addRow(SearchObject* search, QGridLayout* grid) { ApplicationGroup* appGroup = dynamic_cast<ApplicationGroup*>(search); QList<Application*> _apps = appGroup->getAppVec(); // Name column _label = new QLabel(appGroup->getSearchName(), this); _label->setContentsMargins(5, 5, 5, 5); _label->setAlignment(Qt::AlignTop); grid->addWidget(_label, _numRows, 0); // Tool column QWidget* toolBoxWidget = new QWidget(this); QVBoxLayout * toolBox = new QVBoxLayout(toolBoxWidget); for (QList<Application*>::Iterator it = _apps.begin(); it != _apps.end(); ++it) { KUrlLabel* l = new KUrlLabel((*it)->getWebsite(), (*it)->getAppName(), toolBoxWidget); toolBox->addWidget(l); l->setAlignment(Qt::AlignLeft | Qt::AlignTop); l->setContentsMargins(5, 5, 5, 5); connect(l, SIGNAL(leftClickedUrl(const QString&)), SLOT(website(const QString&))); } grid->addWidget(toolBoxWidget, _numRows, 1); // Found column QWidget* vboxWidget = new QWidget(this); QVBoxLayout * vbox = new QVBoxLayout(vboxWidget); for (QList<Application*>::Iterator it = _apps.begin(); it != _apps.end(); ++it) { _label = new QLabel((*it)->getPath(), vboxWidget); _label->setContentsMargins(5, 5, 5, 5); _label->setAlignment(Qt::AlignTop); vbox->addWidget(_label); } grid->addWidget(vboxWidget, _numRows, 2); // Status column _label = new QLabel(this); _label->setContentsMargins(5, 5, 5, 5); _label->setAlignment(Qt::AlignTop); if (appGroup->getFoundGroup()) { _label->setText(i18n("enabled")); QPalette pal = _label->palette(); pal.setColor(_label->foregroundRole(), "darkgreen"); _label->setPalette(pal); } else { _label->setText(i18n("disabled")); QPalette pal = _label->palette(); pal.setColor(_label->foregroundRole(), "red"); _label->setPalette(pal); } grid->addWidget(_label, _numRows, 3); // Apply shared design elements adjustRow(_grid); // Ensure the last column takes more space _label->setMinimumWidth(300); ++_numRows; return true; }