K3b::FillStatusDisplay::FillStatusDisplay( K3b::Doc* doc, QWidget *parent ) : QFrame(parent) { d = new Private; d->doc = doc; d->displayWidget = new K3b::FillStatusDisplayWidget( doc, this ); d->buttonMenu = new QToolButton( this ); d->buttonMenu->setIcon( QIcon::fromTheme( "configure" ) ); d->buttonMenu->setAutoRaise( true ); d->buttonMenu->setToolTip( i18n( "Set medium size" ) ); connect( d->buttonMenu, SIGNAL(clicked()), this, SLOT(slotMenuButtonClicked()) ); QHBoxLayout* layout = new QHBoxLayout( this ); layout->setSpacing( frameWidth() ); layout->setContentsMargins( frameWidth(), frameWidth(), frameWidth(), frameWidth() ); layout->addWidget( d->displayWidget, 1, Qt::AlignVCenter ); layout->addWidget( d->buttonMenu ); setupPopupMenu(); connect( d->doc, SIGNAL(changed()), this, SLOT(slotDocChanged()) ); connect( &d->updateTimer, SIGNAL(timeout()), this, SLOT(slotUpdateDisplay()) ); connect( k3bappcore->mediaCache(), SIGNAL(mediumChanged(K3b::Device::Device*)), this, SLOT(slotMediumChanged(K3b::Device::Device*)) ); slotLoadUserDefaults(); }
void K3bInteractionDialog::loadStartupSettings() { KConfigGroup c( k3bcore->config(), "General Options" ); // earlier K3b versions loaded the saved settings // so that is what we do as a default int i = c.readNumEntry( "action dialog startup settings", LOAD_SAVED_SETTINGS ); switch( i ) { case LOAD_K3B_DEFAULTS: slotLoadK3bDefaults(); break; case LOAD_SAVED_SETTINGS: slotLoadUserDefaults(); break; case LOAD_LAST_SETTINGS: slotLoadLastSettings(); break; } }
void K3b::FillStatusDisplay::setupPopupMenu() { d->actionCollection = new KActionCollection( this ); // we use a nother popup for the dvd sizes d->popup = new QMenu( this ); d->actionShowMinutes = K3b::createToggleAction( this, i18n("Minutes"), 0, 0, this, SLOT(showTime()), d->actionCollection, "fillstatus_show_minutes" ); d->actionShowMegs = K3b::createToggleAction( this, i18n("Megabytes"), 0, 0, this, SLOT(showSize()), d->actionCollection, "fillstatus_show_megabytes" ); d->actionAuto = K3b::createToggleAction( this, i18n("Automatic Size"), 0, 0, this, SLOT(slotAutoSize()), d->actionCollection, "fillstatus_auto" ); d->action74Min = K3b::createToggleAction( this, i18n("%1 MB",650), 0, 0, this, SLOT(slot74Minutes()), d->actionCollection, "fillstatus_74minutes" ); d->action80Min = K3b::createToggleAction( this, i18n("%1 MB",700), 0, 0, this, SLOT(slot80Minutes()), d->actionCollection, "fillstatus_80minutes" ); d->action100Min = K3b::createToggleAction( this, i18n("%1 MB",880), 0, 0, this, SLOT(slot100Minutes()), d->actionCollection, "fillstatus_100minutes" ); d->actionDvd4_7GB = K3b::createToggleAction( this, KIO::convertSizeFromKiB((int)(4.4*1024.0*1024.0)), 0, 0, this, SLOT(slotDvd4_7GB()), d->actionCollection, "fillstatus_dvd_4_7gb" ); d->actionDvdDoubleLayer = K3b::createToggleAction( this, KIO::convertSizeFromKiB((int)(8.0*1024.0*1024.0)), 0, 0, this, SLOT(slotDvdDoubleLayer()), d->actionCollection, "fillstatus_dvd_double_layer" ); d->actionBD25 = K3b::createToggleAction( this, KIO::convertSizeFromKiB( 25*1024*1024 ), 0, 0, this, SLOT(slotBD25()), d->actionCollection, "fillstatus_bd_25" ); d->actionBD50 = K3b::createToggleAction( this, KIO::convertSizeFromKiB( 50*1024*1024 ), 0, 0, this, SLOT(slotBD50()), d->actionCollection, "fillstatus_bd_50" ); d->actionCustomSize = K3b::createAction( this, i18n("Custom..."), 0, 0, this, SLOT(slotCustomSize()), d->actionCollection, "fillstatus_custom_size" ); d->actionDetermineSize = K3b::createAction( this, i18n("From Medium..."), "media-optical", 0, this, SLOT(slotDetermineSize()), d->actionCollection, "fillstatus_size_from_disk" ); QActionGroup* showSizeInGroup = new QActionGroup( this ); showSizeInGroup->addAction( d->actionShowMegs ); showSizeInGroup->addAction( d->actionShowMinutes ); d->cdSizeGroup = new QActionGroup( this ); d->cdSizeGroup->addAction( d->actionAuto ); d->cdSizeGroup->addAction( d->action74Min ); d->cdSizeGroup->addAction( d->action80Min ); d->cdSizeGroup->addAction( d->action100Min ); d->cdSizeGroup->addAction( d->actionDvd4_7GB ); d->cdSizeGroup->addAction( d->actionDvdDoubleLayer ); d->cdSizeGroup->addAction( d->actionBD25 ); d->cdSizeGroup->addAction( d->actionBD50 ); d->actionLoadUserDefaults = K3b::createAction( this, i18n("User Defaults"), "", 0, this, SLOT(slotLoadUserDefaults()), d->actionCollection, "load_user_defaults" ); d->actionSaveUserDefaults = K3b::createAction( this, i18n("Save User Defaults"), "", 0, this, SLOT(slotSaveUserDefaults()), d->actionCollection, "save_user_defaults" ); QAction* dvdSizeInfoAction = K3b::createAction( this, i18n("Why 4.4 instead of 4.7?"), "", 0, this, SLOT(slotWhy44()), d->actionCollection, "why_44_gb" ); d->popup->addSection( i18n("Show Size In") ); d->popup->addAction( d->actionShowMinutes ); d->popup->addAction( d->actionShowMegs ); d->popup->addSeparator(); d->popup->addAction( d->actionAuto ); if ( d->doc->supportedMediaTypes() & K3b::Device::MEDIA_CD_ALL ) { d->popup->addSection( i18n("CD Size") ); d->popup->addAction( d->action74Min ); d->popup->addAction( d->action80Min ); d->popup->addAction( d->action100Min ); } if ( d->doc->supportedMediaTypes() & K3b::Device::MEDIA_DVD_ALL ) { d->popup->addSection( i18n("DVD Size") ); d->popup->addAction( dvdSizeInfoAction ); d->popup->addAction( d->actionDvd4_7GB ); d->popup->addAction( d->actionDvdDoubleLayer ); } if ( d->doc->supportedMediaTypes() & K3b::Device::MEDIA_BD_ALL ) { d->popup->addSection( i18n("Blu-ray Size") ); d->popup->addAction( d->actionBD25 ); d->popup->addAction( d->actionBD50 ); } d->popup->addSeparator(); d->popup->addAction( d->actionCustomSize ); d->popup->addAction( d->actionDetermineSize ); d->popup->addSeparator(); d->popup->addAction( d->actionLoadUserDefaults ); d->popup->addAction( d->actionSaveUserDefaults ); connect( d->displayWidget, SIGNAL(contextMenu(QPoint)), this, SLOT(slotPopupMenu(QPoint)) ); }
K3bInteractionDialog::K3bInteractionDialog( QWidget* parent, const char* name, const QString& title, const QString& subTitle, int buttonMask, int defaultButton, const QString& configGroup, bool modal, WFlags fl ) : KDialog( parent, name, modal, fl ), m_mainWidget(0), m_defaultButton(defaultButton), m_configGroup(configGroup), m_exitLoopOnHide(true), m_inLoop(false), m_inToggleMode(false), m_delayedInit(false) { installEventFilter( this ); mainGrid = new QGridLayout( this ); mainGrid->setSpacing( spacingHint() ); mainGrid->setMargin( marginHint() ); // header // --------------------------------------------------------------------------------------------------- m_dialogHeader = new K3bThemedHeader( this ); mainGrid->addMultiCellWidget( m_dialogHeader, 0, 0, 0, 2 ); // settings buttons // --------------------------------------------------------------------------------------------------- if( !m_configGroup.isEmpty() ) { QHBoxLayout* layout2 = new QHBoxLayout( 0, 0, spacingHint(), "layout2"); m_buttonLoadSettings = new K3bToolButton( /*i18n("User Defaults"), */this ); ((K3bToolButton*)m_buttonLoadSettings)->setIconSet( SmallIconSet( "revert" ) ); QPopupMenu* userDefaultsPopup = new QPopupMenu( m_buttonLoadSettings ); userDefaultsPopup->insertItem( i18n("Load default settings"), this, SLOT(slotLoadK3bDefaults()) ); userDefaultsPopup->insertItem( i18n("Load saved settings"), this, SLOT(slotLoadUserDefaults()) ); userDefaultsPopup->insertItem( i18n("Load last used settings"), this, SLOT(slotLoadLastSettings()) ); ((QToolButton*)m_buttonLoadSettings)->setPopup( userDefaultsPopup ); ((K3bToolButton*)m_buttonLoadSettings)->setInstantMenu( true ); layout2->addWidget( m_buttonLoadSettings ); m_buttonSaveSettings = new QToolButton( /*i18n("Save User Defaults"), */this, "m_buttonSaveSettings" ); ((QToolButton*)m_buttonSaveSettings)->setIconSet( SmallIconSet( "filesave" ) ); layout2->addWidget( m_buttonSaveSettings ); mainGrid->addLayout( layout2, 2, 0 ); } QSpacerItem* spacer = new QSpacerItem( 10, 10, QSizePolicy::Expanding, QSizePolicy::Minimum ); mainGrid->addItem( spacer, 2, 1 ); // action buttons // --------------------------------------------------------------------------------------------------- QHBoxLayout* layout5 = new QHBoxLayout( 0, 0, spacingHint(), "layout5"); if( buttonMask & START_BUTTON ) { KGuiItem startItem = KStdGuiItem::ok(); m_buttonStart = new KPushButton( startItem, this, "m_buttonStart" ); // refine the button text setButtonText( START_BUTTON, i18n("Start"), i18n("Start the task") ); QFont fnt( m_buttonStart->font() ); fnt.setBold(true); m_buttonStart->setFont( fnt ); } else m_buttonStart = 0; if( buttonMask & SAVE_BUTTON ) { m_buttonSave = new KPushButton( KStdGuiItem::save(), this, "m_buttonSave" ); } else m_buttonSave = 0; if( buttonMask & CANCEL_BUTTON ) { m_buttonCancel = new KPushButton( KConfigGroup( k3bcore->config(), "General Options" ) .readBoolEntry( "keep action dialogs open", false ) ? KStdGuiItem::close() : KStdGuiItem::cancel(), this, "m_buttonCancel" ); } else m_buttonCancel = 0; // we only handle some of the possible settings since // our buttons are always to the right of the dialog int btl = 0; #if KDE_IS_VERSION(3,3,0) btl = KGlobalSettings::buttonLayout(); #endif switch( btl ) { case 0: // KDE default default: if ( m_buttonStart ) layout5->addWidget( m_buttonStart ); if ( m_buttonSave ) layout5->addWidget( m_buttonSave ); if ( m_buttonCancel ) layout5->addWidget( m_buttonCancel ); break; case 1: // something different if ( m_buttonCancel ) layout5->addWidget( m_buttonCancel ); if ( m_buttonSave ) layout5->addWidget( m_buttonSave ); if ( m_buttonStart ) layout5->addWidget( m_buttonStart ); break; case 2: // GTK-Style if ( m_buttonSave ) layout5->addWidget( m_buttonSave ); if ( m_buttonCancel ) layout5->addWidget( m_buttonCancel ); if ( m_buttonStart ) layout5->addWidget( m_buttonStart ); break; } mainGrid->addLayout( layout5, 2, 2 ); mainGrid->setRowStretch( 1, 1 ); setTitle( title, subTitle ); initConnections(); initToolTipsAndWhatsThis(); setDefaultButton( START_BUTTON ); }
K3b::InteractionDialog::InteractionDialog( QWidget* parent, const QString& title, const QString& subTitle, int buttonMask, int defaultButton, const QString& configGroup ) : QDialog( parent ), m_mainWidget(0), m_defaultButton(defaultButton), m_configGroup(configGroup), m_inToggleMode(false), m_delayedInit(false) { installEventFilter( this ); mainGrid = new QGridLayout( this ); // header // --------------------------------------------------------------------------------------------------- m_dialogHeader = new K3b::ThemedHeader( this ); mainGrid->addWidget( m_dialogHeader, 0, 0, 1, 3 ); // settings buttons // --------------------------------------------------------------------------------------------------- if( !m_configGroup.isEmpty() ) { QHBoxLayout* layout2 = new QHBoxLayout; m_buttonLoadSettings = new QToolButton( this ); m_buttonLoadSettings->setIcon( QIcon::fromTheme( "document-revert" ) ); m_buttonLoadSettings->setPopupMode( QToolButton::InstantPopup ); QMenu* userDefaultsPopup = new QMenu( m_buttonLoadSettings ); userDefaultsPopup->addAction( i18n("Load default settings"), this, SLOT(slotLoadK3bDefaults()) ); userDefaultsPopup->addAction( i18n("Load saved settings"), this, SLOT(slotLoadUserDefaults()) ); userDefaultsPopup->addAction( i18n("Load last used settings"), this, SLOT(slotLoadLastSettings()) ); m_buttonLoadSettings->setMenu( userDefaultsPopup ); layout2->addWidget( m_buttonLoadSettings ); m_buttonSaveSettings = new QToolButton( this ); m_buttonSaveSettings->setIcon( QIcon::fromTheme( "document-save" ) ); layout2->addWidget( m_buttonSaveSettings ); mainGrid->addLayout( layout2, 2, 0 ); } QSpacerItem* spacer = new QSpacerItem( 10, 10, QSizePolicy::Expanding, QSizePolicy::Minimum ); mainGrid->addItem( spacer, 2, 1 ); // action buttons // --------------------------------------------------------------------------------------------------- QDialogButtonBox *buttonBox = new QDialogButtonBox( this ); connect( buttonBox, SIGNAL(accepted()), this, SLOT(accept()) ); connect( buttonBox, SIGNAL(rejected()), this, SLOT(reject()) ); if( buttonMask & START_BUTTON ) { m_buttonStart = new QPushButton( buttonBox ); KGuiItem::assign( m_buttonStart, KStandardGuiItem::ok() ); // refine the button text setButtonText( START_BUTTON, i18n("Start"), i18n("Start the task") ); QFont fnt( m_buttonStart->font() ); fnt.setBold(true); m_buttonStart->setFont( fnt ); buttonBox->addButton( m_buttonStart, QDialogButtonBox::AcceptRole ); } if( buttonMask & SAVE_BUTTON ) { m_buttonSave = new QPushButton( buttonBox ); KGuiItem::assign( m_buttonSave, KStandardGuiItem::save() ); buttonBox->addButton( m_buttonSave, QDialogButtonBox::ApplyRole ); } else { m_buttonSave = 0; } if( buttonMask & CANCEL_BUTTON ) { m_buttonCancel = new QPushButton( buttonBox ); KGuiItem::assign( m_buttonCancel, KConfigGroup( KSharedConfig::openConfig(), "General Options" ) .readEntry( "keep action dialogs open", false ) ? KStandardGuiItem::close() : KStandardGuiItem::cancel() ); buttonBox->addButton( m_buttonCancel, QDialogButtonBox::RejectRole ); } else { m_buttonCancel = 0; } mainGrid->addWidget( buttonBox, 2, 2 ); mainGrid->setRowStretch( 1, 1 ); setTitle( title, subTitle ); initConnections(); initToolTipsAndWhatsThis(); setDefaultButton( START_BUTTON ); }