QFrame *AbstractController::discFrame() { /** Disc and Menus handling */ QFrame *discFrame = new QFrame( this ); QHBoxLayout *discLayout = new QHBoxLayout( discFrame ); discLayout->setSpacing( 0 ); discLayout->setMargin( 0 ); QFrame *chapFrame = new QFrame( discFrame ); QHBoxLayout *chapLayout = new QHBoxLayout( chapFrame ); chapLayout->setSpacing( 0 ); chapLayout->setMargin( 0 ); QToolButton *prevSectionButton = new QToolButton( chapFrame ); setupButton( prevSectionButton ); BUTTON_SET_BAR2( prevSectionButton, toolbar/dvd_prev, qtr("Previous Chapter/Title" ) ); chapLayout->addWidget( prevSectionButton ); QToolButton *nextSectionButton = new QToolButton( chapFrame ); setupButton( nextSectionButton ); BUTTON_SET_BAR2( nextSectionButton, toolbar/dvd_next, qtr("Next Chapter/Title" ) ); chapLayout->addWidget( nextSectionButton ); discLayout->addWidget( chapFrame ); chapFrame->hide(); QFrame *menuFrame = new QFrame( discFrame ); QHBoxLayout *menuLayout = new QHBoxLayout( menuFrame ); menuLayout->setSpacing( 0 ); menuLayout->setMargin( 0 ); QToolButton *menuButton = new QToolButton( menuFrame ); setupButton( menuButton ); menuLayout->addWidget( menuButton ); BUTTON_SET_BAR2( menuButton, toolbar/dvd_menu, qtr( "Menu" ) ); discLayout->addWidget( menuFrame ); menuFrame->hide(); /* Change the navigation button display when the IM navigation changes */ CONNECT( THEMIM->getIM(), chapterChanged( bool ), chapFrame, setVisible( bool ) ); CONNECT( THEMIM->getIM(), titleChanged( bool ), menuFrame, setVisible( bool ) ); /* Changes the IM navigation when triggered on the nav buttons */ CONNECT( prevSectionButton, clicked(), THEMIM->getIM(), sectionPrev() ); CONNECT( nextSectionButton, clicked(), THEMIM->getIM(), sectionNext() ); CONNECT( menuButton, clicked(), THEMIM->getIM(), sectionMenu() ); return discFrame; }
QVBoxLayout * MENU_KERNEL::CREATE_NEW_MENU_COLUMN ( QLayout * layout,QList<QMenu *> * action_menu,QLayout * parent_layout,int index) { if ( layout NE NULL ) { action_menu->clear(); } QFrame * container = new QFrame ( this ) ; QVBoxLayout * vertical_layout = new QVBoxLayout ( container ); container->setLayout ( vertical_layout ); if ( M_KERNEL_MENU_SECENEGI[index].is_visible EQ true AND ( M_KERNEL_MENU_SECENEGI [ index ].menu_column_visibility EQ MENU_HERYERDE OR M_KERNEL_MENU_SECENEGI[index].menu_column_visibility EQ MENU_SAYFADA) ) { parent_layout->addWidget ( container ); if (M_KERNEL_MENU_SECENEGI [ index ].num_of_childs EQ 0 ) { container->hide(); QHBoxLayout * box_layout = static_cast< QHBoxLayout * > ( parent_layout ) ; box_layout->addSpacerItem ( new QSpacerItem ( 40,20,QSizePolicy::Expanding,QSizePolicy::Fixed ) ); } } else { container->hide(); } QMenu * menu = new QMenu ( M_KERNEL_MENU_SECENEGI[index].text_to_display ); *action_menu << menu; if ( M_KERNEL_MENU_SECENEGI[index].is_visible EQ true AND ( M_KERNEL_MENU_SECENEGI [ index ].menu_column_visibility EQ MENU_HERYERDE OR M_KERNEL_MENU_SECENEGI[index].menu_column_visibility EQ MENU_TOPMENUDE) ) { this->menuBar()->addMenu ( menu ); } SET_WIDGET_DEFAULTS( action_menu->last(),index ); menu->hide(); QVBoxLayout * menu_header_vertical_layout = ADD_FRAME ( vertical_layout,container,MENU_HEADER_ITEM,index ); QVBoxLayout * menu_body_vertical_layout = ADD_FRAME ( vertical_layout,container,MENU_BODY_ITEM ,index ); if ( M_KERNEL_MENU_SECENEGI[index].num_of_childs NE 0 ) { ADD_MENU_KERNEL_LABEL ( menu_header_vertical_layout,MENU_HEADER_ITEM,M_KERNEL_MENU_SECENEGI [index].tab_str + M_KERNEL_MENU_SECENEGI[index].text_to_display,index); } else { ADD_MENU_KERNEL_BUTTON ( menu_header_vertical_layout,MENU_HEADER_ITEM,M_KERNEL_MENU_SECENEGI[index].tab_str + M_KERNEL_MENU_SECENEGI[index].text_to_display,index); } return menu_body_vertical_layout; }
SearchPane::SearchPane( FileBrowser *parent ) : QVBox( parent ) , m_lineEdit( 0 ) , m_listView( 0 ) , m_lister( 0 ) { QFrame *container = new QVBox( this, "container" ); container->hide(); { QFrame *box = new QHBox( container ); box->setMargin( 5 ); box->setBackgroundMode( Qt::PaletteBase ); m_lineEdit = new ClickLineEdit( i18n("Search here..."), box ); connect( m_lineEdit, SIGNAL(textChanged( const QString& )), SLOT(searchTextChanged( const QString& )) ); m_listView = new KURLView( container ); container->setFrameStyle( m_listView->frameStyle() ); container->setMargin( 5 ); container->setBackgroundMode( Qt::PaletteBase ); m_listView->setFrameStyle( QFrame::NoFrame ); connect( m_listView, SIGNAL(executed( QListViewItem* )), SLOT(activate( QListViewItem* )) ); } KPushButton *button = new KPushButton( KGuiItem( i18n("&Show Search Panel"), "find" ), this ); button->setToggleButton( true ); connect( button, SIGNAL(toggled( bool )), SLOT(toggle( bool )) ); m_lister = new MyDirLister( true /*delay mimetypes*/ ); insertChild( m_lister ); connect( m_lister, SIGNAL(newItems( const KFileItemList& )), SLOT(searchMatches( const KFileItemList& )) ); connect( m_lister, SIGNAL(completed()), SLOT(searchComplete()) ); }
DirOpener::DirOpener( Config *_config, Mode _mode, QWidget *parent, Qt::WFlags f ) : KDialog( parent, f ), dialogAborted( false ), config( _config ), mode( _mode ) { setCaption( i18n("Add folder") ); setWindowIcon( KIcon("folder") ); if( mode == Convert ) { setButtons( KDialog::User1 | KDialog::Cancel ); } else if( mode == ReplayGain ) { setButtons( KDialog::Ok | KDialog::Cancel ); } setButtonText( KDialog::User1, i18n("Proceed") ); setButtonIcon( KDialog::User1, KIcon("go-next") ); const int fontHeight = QFontMetrics(QApplication::font()).boundingRect("M").size().height(); connect( this, SIGNAL(user1Clicked()), this, SLOT(proceedClicked()) ); connect( this, SIGNAL(okClicked()), this, SLOT(addClicked()) ); page = DirOpenPage; QWidget *widget = new QWidget(); QGridLayout *mainGrid = new QGridLayout( widget ); QGridLayout *topGrid = new QGridLayout(); mainGrid->addLayout( topGrid, 0, 0 ); setMainWidget( widget ); lSelector = new QLabel( i18n("1. Select directory"), widget ); QFont font; font.setBold( true ); lSelector->setFont( font ); topGrid->addWidget( lSelector, 0, 0 ); lOptions = new QLabel( i18n("2. Set conversion options"), widget ); topGrid->addWidget( lOptions, 0, 1 ); // draw a horizontal line QFrame *lineFrame = new QFrame( widget ); lineFrame->setFrameShape( QFrame::HLine ); lineFrame->setFrameShadow( QFrame::Sunken ); mainGrid->addWidget( lineFrame, 1, 0 ); if( mode == ReplayGain ) { lSelector->hide(); lOptions->hide(); lineFrame->hide(); } // Dir Opener Widget dirOpenerWidget = new QWidget( widget ); mainGrid->addWidget( dirOpenerWidget, 2, 0 ); QVBoxLayout *box = new QVBoxLayout( dirOpenerWidget ); QHBoxLayout *directoryBox = new QHBoxLayout(); box->addLayout( directoryBox ); QLabel *labelFilter = new QLabel( i18n("Directory:"), dirOpenerWidget ); directoryBox->addWidget( labelFilter ); uDirectory = new KUrlRequester( KUrl("kfiledialog:///soundkonverter-add-media"), dirOpenerWidget ); uDirectory->setMode( KFile::Directory | KFile::ExistingOnly | KFile::LocalOnly ); directoryBox->addWidget( uDirectory ); QLabel *labelDirectory = new QLabel( i18n("Only add selected file formats:"), dirOpenerWidget ); box->addWidget( labelDirectory ); QHBoxLayout *fileTypesBox = new QHBoxLayout(); box->addLayout( fileTypesBox ); QStringList codecList; fileTypes = new KListWidget( dirOpenerWidget ); if( mode == Convert ) { codecList = config->pluginLoader()->formatList( PluginLoader::Decode, PluginLoader::CompressionType(PluginLoader::InferiorQuality|PluginLoader::Lossy|PluginLoader::Lossless|PluginLoader::Hybrid) ); } else if( mode == ReplayGain ) { codecList = config->pluginLoader()->formatList( PluginLoader::ReplayGain, PluginLoader::CompressionType(PluginLoader::InferiorQuality|PluginLoader::Lossy|PluginLoader::Lossless|PluginLoader::Hybrid) ); } for( int i = 0; i < codecList.size(); i++ ) { if( codecList.at(i) == "audio cd" ) continue; QListWidgetItem *newItem = new QListWidgetItem( codecList.at(i), fileTypes ); newItem->setFlags( Qt::ItemIsEnabled | Qt::ItemIsUserCheckable ); newItem->setCheckState( Qt::Checked ); } QVBoxLayout *fileTypesFormatsBox = new QVBoxLayout(); fileTypesBox->addLayout( fileTypesFormatsBox ); fileTypesFormatsBox->addWidget( fileTypes ); QLabel *formatHelp = new QLabel( "<a href=\"format-help\">" + i18n("Are you missing some file formats?") + "</a>", this ); connect( formatHelp, SIGNAL(linkActivated(const QString&)), this, SLOT(showHelp()) ); fileTypesFormatsBox->addWidget( formatHelp ); QVBoxLayout *fileTypesButtonsBox = new QVBoxLayout(); fileTypesBox->addLayout( fileTypesButtonsBox ); fileTypesButtonsBox->addStretch(); pSelectAll = new KPushButton( KIcon("edit-select-all"), i18n("Select all"), dirOpenerWidget ); fileTypesButtonsBox->addWidget( pSelectAll ); connect( pSelectAll, SIGNAL(clicked()), this, SLOT(selectAllClicked()) ); pSelectNone = new KPushButton( KIcon("application-x-zerosize"), i18n("Select none"), dirOpenerWidget ); fileTypesButtonsBox->addWidget( pSelectNone ); connect( pSelectNone, SIGNAL(clicked()), this, SLOT(selectNoneClicked()) ); cRecursive = new QCheckBox( i18n("Recursive"), dirOpenerWidget ); cRecursive->setChecked( true ); cRecursive->setToolTip( i18n("If checked, files from subdirectories will be added, too.") ); fileTypesButtonsBox->addWidget( cRecursive ); fileTypesButtonsBox->addStretch(); // Conversion Options Widget options = new Options( config, i18n("Select your desired output options and click on \"Ok\"."), widget ); mainGrid->addWidget( options, 2, 0 ); adjustSize(); options->hide(); const KUrl url = KFileDialog::getExistingDirectoryUrl( uDirectory->url(), this ); if( !url.isEmpty() ) uDirectory->setUrl( url ); else dialogAborted = true; // Prevent the dialog from beeing too wide because of the directory history if( parent && width() > parent->width() ) setInitialSize( QSize(parent->width()-fontHeight,sizeHint().height()) ); KSharedConfig::Ptr conf = KGlobal::config(); KConfigGroup group = conf->group( "DirOpener" ); restoreDialogSize( group ); }
K3bDataPropertiesDialog::K3bDataPropertiesDialog( K3bDataItem* dataItem, QWidget* parent, const char* name ) : KDialogBase( Plain, i18n("File Properties"), Ok|Cancel, Ok, parent, name, true, false ) { m_dataItem = dataItem; QLabel* labelMimeType = new QLabel( plainPage() ); QLabel* extraInfoLabel = new QLabel( plainPage() ); m_editName = new KLineEdit( plainPage() ); m_labelType = new QLabel( plainPage() ); m_labelLocation = new KCutLabel( plainPage() ); m_labelSize = new QLabel( plainPage() ); m_labelBlocks = new QLabel( plainPage() ); m_labelLocalName = new KCutLabel( plainPage() ); m_labelLocalLocation = new KCutLabel( plainPage() ); QGridLayout* grid = new QGridLayout( plainPage() ); grid->setSpacing( spacingHint() ); grid->setMargin( marginHint() ); grid->addWidget( labelMimeType, 0, 0 ); grid->addWidget( m_editName, 0, 2 ); QFrame* line = new QFrame( plainPage() ); line->setFrameStyle( QFrame::HLine | QFrame::Sunken ); grid->addMultiCellWidget( line, 1, 1, 0, 2 ); grid->addWidget( new QLabel( i18n("Type:"), plainPage() ), 2, 0 ); grid->addWidget( new QLabel( i18n("Location:"), plainPage() ), 4, 0 ); grid->addWidget( new QLabel( i18n("Size:"), plainPage() ), 5, 0 ); grid->addWidget( new QLabel( i18n("Used blocks:"), plainPage() ), 6, 0 ); grid->addWidget( m_labelType, 2, 2 ); grid->addWidget( extraInfoLabel, 3, 2 ); grid->addWidget( m_labelLocation, 4, 2 ); grid->addWidget( m_labelSize, 5, 2 ); grid->addWidget( m_labelBlocks, 6, 2 ); line = new QFrame( plainPage() ); line->setFrameStyle( QFrame::HLine | QFrame::Sunken ); grid->addMultiCellWidget( line, 7, 7, 0, 2 ); QLabel* label1 = new QLabel( i18n("Local name:"), plainPage() ); grid->addWidget( label1, 8, 0 ); QLabel* label2 = new QLabel( i18n("Local location:"), plainPage() ); grid->addWidget( label2, 9, 0 ); grid->addWidget( m_labelLocalName, 8, 2 ); grid->addWidget( m_labelLocalLocation, 9, 2 ); grid->addColSpacing( 1, 50 ); grid->setColStretch( 2, 1 ); if( K3bFileItem* fileItem = dynamic_cast<K3bFileItem*>(dataItem) ) { KFileItem kFileItem( KFileItem::Unknown, KFileItem::Unknown, KURL::fromPathOrURL(fileItem->localPath()) ); labelMimeType->setPixmap( kFileItem.pixmap(KIcon::SizeLarge) ); if( fileItem->isSymLink() ) m_labelType->setText( i18n("Link to %1").arg(kFileItem.mimeComment()) ); else m_labelType->setText( kFileItem.mimeComment() ); m_labelLocalName->setText( kFileItem.name() ); QString localLocation = kFileItem.url().path(-1); localLocation.truncate( localLocation.findRev('/') ); m_labelLocalLocation->setText( localLocation ); m_labelSize->setText( KIO::convertSize(dataItem->size()) ); } else if( K3bDirItem* dirItem = dynamic_cast<K3bDirItem*>(dataItem) ) { labelMimeType->setPixmap( KMimeType::pixmapForURL( KURL( "/" )) ); m_labelType->setText( i18n("Directory") ); label1->hide(); label2->hide(); m_labelLocalName->hide(); m_labelLocalLocation->hide(); line->hide(); m_labelSize->setText( KIO::convertSize(dataItem->size()) + "\n(" + i18n("in 1 file", "in %n files", dirItem->numFiles()) + " " + i18n("and 1 directory", "and %n directories", dirItem->numDirs()) + ")" ); } else { labelMimeType->setPixmap( DesktopIcon("unknown", KIcon::SizeLarge) ); m_labelType->setText( i18n("Special file") ); m_labelLocalName->hide(); m_labelLocalLocation->hide(); label1->hide(); label2->hide(); line->hide(); m_labelSize->setText( KIO::convertSize(dataItem->size()) ); } m_editName->setText( dataItem->k3bName() ); m_labelBlocks->setText( QString::number(dataItem->blocks().lba()) ); QString location = "/" + dataItem->k3bPath(); if( location[location.length()-1] == '/' ) location.truncate( location.length()-1 ); location.truncate( location.findRev('/') ); if( location.isEmpty() ) location = "/"; m_labelLocation->setText( location ); extraInfoLabel->setText( QString( "(%1)" ).arg(dataItem->extraInfo()) ); if( dataItem->extraInfo().isEmpty() ) extraInfoLabel->hide(); // OPTIONS // ///////////////////////////////////////////////// QTabWidget* optionTab = new QTabWidget( plainPage() ); line = new QFrame( plainPage() ); line->setFrameStyle( QFrame::HLine | QFrame::Sunken ); grid->addMultiCellWidget( line, 10, 10, 0, 2 ); grid->addMultiCellWidget( optionTab, 12, 12, 0, 2 ); grid->setRowStretch( 11, 1 ); QWidget* hideBox = new QWidget( optionTab ); QGridLayout* hideBoxGrid = new QGridLayout( hideBox ); hideBoxGrid->setSpacing( spacingHint() ); hideBoxGrid->setMargin( marginHint() ); m_checkHideOnRockRidge = new QCheckBox( i18n("Hide on Rockridge"), hideBox ); m_checkHideOnJoliet = new QCheckBox( i18n("Hide on Joliet"), hideBox ); hideBoxGrid->addWidget( m_checkHideOnRockRidge, 0, 0 ); hideBoxGrid->addWidget( m_checkHideOnJoliet, 1, 0 ); hideBoxGrid->setRowStretch( 2, 1 ); // grid->addMultiCellWidget( m_checkHideOnRockRidge, 10, 10, 0, 2 ); // grid->addMultiCellWidget( m_checkHideOnJoliet, 11, 11, 0, 2 ); QWidget* sortingBox = new QWidget( optionTab ); QGridLayout* sortingBoxGrid = new QGridLayout( sortingBox ); sortingBoxGrid->setSpacing( spacingHint() ); sortingBoxGrid->setMargin( marginHint() ); m_editSortWeight = new KLineEdit( sortingBox ); m_editSortWeight->setValidator( new QIntValidator( -2147483647, 2147483647, m_editSortWeight ) ); m_editSortWeight->setAlignment( Qt::AlignRight ); sortingBoxGrid->addWidget( new QLabel( i18n("Sort weight:"), sortingBox ), 0, 0 ); sortingBoxGrid->addWidget( m_editSortWeight, 0, 1 ); sortingBoxGrid->setColStretch( 1, 1 ); sortingBoxGrid->setRowStretch( 1, 1 ); optionTab->addTab( hideBox, i18n("Settings") ); optionTab->addTab( sortingBox, i18n("Advanced") ); m_checkHideOnJoliet->setChecked( dataItem->hideOnJoliet() ); m_checkHideOnRockRidge->setChecked( dataItem->hideOnRockRidge() ); m_editSortWeight->setText( QString::number(dataItem->sortWeight()) ); // if the parent is hidden the value cannot be changed (see K3bDataItem::setHide...) if( dataItem->parent() ) { m_checkHideOnRockRidge->setDisabled( dataItem->parent()->hideOnRockRidge() ); m_checkHideOnJoliet->setDisabled( dataItem->parent()->hideOnJoliet() ); } if( !dataItem->isHideable() ) { m_checkHideOnJoliet->setDisabled(true); m_checkHideOnRockRidge->setDisabled(true); // line->hide(); } QToolTip::add( m_checkHideOnRockRidge, i18n("Hide this file in the RockRidge filesystem") ); QToolTip::add( m_checkHideOnJoliet, i18n("Hide this file in the Joliet filesystem") ); QToolTip::add( m_editSortWeight, i18n("Modify the physical sorting") ); QWhatsThis::add( m_checkHideOnRockRidge, i18n("<p>If this option is checked, the file or directory " "(and its entire contents) will be hidden on the " "ISO9660 and RockRidge filesystem.</p>" "<p>This is useful, for example, for having different README " "files for RockRidge and Joliet, which can be managed " "by hiding README.joliet on RockRidge and README.rr " "on the Joliet filesystem.</p>") ); QWhatsThis::add( m_checkHideOnJoliet, i18n("<p>If this option is checked, the file or directory " "(and its entire contents) will be hidden on the " "Joliet filesystem.</p>" "<p>This is useful, for example, for having different README " "files for RockRidge and Joliet, which can be managed " "by hiding README.joliet on RockRidge and README.rr " "on the Joliet filesystem.</p>") ); QWhatsThis::add( m_editSortWeight, i18n("<p>This value modifies the physical sort order of the files " "in the ISO9660 filesystem. A higher weighting means that the " "file will be located closer to the beginning of the image " "(and the disk)." "<p>This option is useful in order to optimize the data layout " "on a CD/DVD." "<p><b>Caution:</b> This does not sort the order of the file " "names that appear in the ISO9660 directory." "It sorts the order in which the file data is " "written to the image.") ); m_editName->setValidator( K3bValidators::iso9660Validator( false, this ) ); m_editName->setReadOnly( !dataItem->isRenameable() ); m_editName->setFocus(); }