void K3bVideoDVDRippingView::initActions() { m_actionCollection = new KActionCollection( this ); KAction* actionSelectAll = new KAction( i18n("Check All"), 0, 0, this, SLOT(slotCheckAll()), actionCollection(), "check_all" ); KAction* actionDeselectAll = new KAction( i18n("Uncheck All"), 0, 0, this, SLOT(slotUncheckAll()), actionCollection(), "uncheck_all" ); KAction* actionSelect = new KAction( i18n("Check Track"), 0, 0, this, SLOT(slotCheck()), actionCollection(), "select_track" ); KAction* actionDeselect = new KAction( i18n("Uncheck Track"), 0, 0, this, SLOT(slotUncheck()), actionCollection(), "deselect_track" ); KAction* actionStartRip = new KAction( i18n("Start Ripping"), "gear", 0, this, SLOT(slotStartRipping()), m_actionCollection, "start_rip" ); actionStartRip->setToolTip( i18n("Open the Video DVD ripping dialog") ); // setup the popup menu m_popupMenu = new KActionMenu( actionCollection(), "popup_menu" ); KAction* separator = new KActionSeparator( actionCollection(), "separator" ); m_popupMenu->insert( actionSelect ); m_popupMenu->insert( actionDeselect ); m_popupMenu->insert( actionSelectAll ); m_popupMenu->insert( actionDeselectAll ); m_popupMenu->insert( separator ); m_popupMenu->insert( actionStartRip ); }
EditFilterDialog::EditFilterDialog( QWidget* parent, const QString &text ) : KDialog( parent ) , m_appended( false ) , m_filterText( text ) { setCaption( i18n( "Edit Filter" ) ); setModal( true ); setButtons( User1|User2|Default|Ok|Cancel ); setDefaultButton( Cancel ); showButtonSeparator( true ); m_ui.setupUi( mainWidget() ); // Redefine "Default" button KGuiItem defaultButton( i18n("&Append"), "list-add" ); setButtonWhatsThis( Default, i18n( "<qt><p>By clicking here you can add the defined condition. The \"OK\" button will " "close the dialog and apply the defined filter. With this button you can add more than " "one condition to create a more complex filtering condition.</p></qt>" ) ); setButtonToolTip( Default, i18n( "Add this filter condition to the list" ) ); setButtonGuiItem( Default, defaultButton ); // define "User1" button KGuiItem user1Button( i18n("&Clear"), "list-remove" ); setButtonWhatsThis( User1, i18n( "<p>By clicking here you will clear the filter. If you intend to " "undo the last appending just click on the \"Undo\" button.</p>" ) ); setButtonToolTip(User1, i18n( "Clear the filter" ) ); setButtonGuiItem( User1, user1Button ); // define "User2" button KGuiItem user2Button( i18nc("this \"undo\" will undo the last appended filter... be careful how you will translate it " "to avoid two buttons (\"Cancel\" and \"Undo\") with same label in the same dialog", "&Undo"), "edit-undo" ); setButtonWhatsThis( User2, i18n( "<p>Clicking here will remove the last appended filter. " "You cannot undo more than one action.</p>" ) ); setButtonToolTip( User2, i18n( "Remove last appended filter" ) ); setButtonGuiItem( User2, user2Button ); //setMainWidget( m_ui ); m_vector.push_back( "Simple Search" ); m_vector.push_back( "album" ); m_vector.push_back( "artist" ); m_vector.push_back( "composer" ); m_vector.push_back( "genre" ); m_vector.push_back( "title" ); m_vector.push_back( "track" ); m_vector.push_back( "year" ); // the "Simple Search" text is selected in the comboKeyword m_selectedIndex = 0; connect( m_ui.keywordCombo, SIGNAL( activated( int ) ), SLOT(selectedKeyword( int ) ) ); connect( m_ui.minimum1, SIGNAL( valueChanged( int ) ), SLOT(minSpinChanged( int ) ) ); connect( m_ui.maximum1, SIGNAL( valueChanged( int ) ), SLOT(maxSpinChanged( int ) ) ); // type text selected textWanted(); // check the "One Value Choosing" by default chooseOneValue(); connect( m_ui.conditionCombo, SIGNAL(activated( int ) ), SLOT(chooseCondition( int ) ) ); m_checkActions << m_ui.matchAll; m_checkActions << m_ui.matchAny; m_checkActions << m_ui.matchLiteral; m_checkActions << m_ui.matchNot; connect( m_ui.matchAll, SIGNAL( clicked() ), SLOT( slotCheckAll() ) ); connect( m_ui.matchAny, SIGNAL( clicked() ), SLOT( slotCheckAtLeastOne() ) ); connect( m_ui.matchLiteral, SIGNAL( clicked() ), SLOT( slotCheckExactly() ) ); connect( m_ui.matchNot, SIGNAL( clicked() ), SLOT( slotCheckExclude() ) ); // check "select all words" as default slotCheckAll(); m_ui.invertButton->setEnabled( false ); connect( m_ui.invertButton, SIGNAL( clicked() ), SLOT( assignPrefixNOT() ) ); // you need to append at least one filter condition to specify if do // an "AND" or an "OR" with the next condition if the filter is empty if( m_filterText.isEmpty() ) m_ui.groupBox_3->setEnabled( false ); connect( m_ui.andButton, SIGNAL(clicked()), SLOT(slotCheckAND()) ); connect( m_ui.orButton, SIGNAL(clicked()), SLOT(slotCheckOR()) ); // check "AND" condition as default slotCheckAND(); connect( this, SIGNAL(okClicked()), this, SLOT(slotOk() ) ); connect( this, SIGNAL( defaultClicked() ) , this, SLOT(slotDefault() ) ); connect( this, SIGNAL( user1Clicked() ), this, SLOT( slotUser1() ) ); connect( this, SIGNAL( user2Clicked() ), this, SLOT( slotUser2() ) ); Amarok::Collection *coll = CollectionManager::instance()->primaryCollection(); if( !coll ) return; QueryMaker *artist = coll->queryMaker()->setQueryType( QueryMaker::Artist ); QueryMaker *album = coll->queryMaker()->setQueryType( QueryMaker::Album ); QueryMaker *composer = coll->queryMaker()->setQueryType( QueryMaker::Composer ); QueryMaker *genre = coll->queryMaker()->setQueryType( QueryMaker::Genre ); QList<QueryMaker*> queries; queries << artist << album << composer << genre; //MetaQueryMaker will run multiple different queries just fine as long as we do not use it //to set the query type. Configuring the queries is ok though MetaQueryMaker *dataQueryMaker = new MetaQueryMaker( queries ); connect( dataQueryMaker, SIGNAL( newResultReady( QString, Meta::ArtistList ) ), SLOT( resultReady( QString, Meta::ArtistList ) ), Qt::QueuedConnection ); connect( dataQueryMaker, SIGNAL( newResultReady( QString, Meta::AlbumList ) ), SLOT( resultReady( QString, Meta::AlbumList ) ), Qt::QueuedConnection ); connect( dataQueryMaker, SIGNAL( newResultReady( QString, Meta::ComposerList ) ), SLOT( resultReady( QString, Meta::ComposerList ) ), Qt::QueuedConnection ); connect( dataQueryMaker, SIGNAL( newResultReady( QString, Meta::GenreList ) ), SLOT( resultReady( QString, Meta::GenreList ) ), Qt::QueuedConnection ); dataQueryMaker->run(); }