⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mediaselector.cpp

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.10平台上编译为嵌入式图形界面操作系统。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	setCurrentItem( first );	setSelected( first, TRUE );    }}void MediaSelector::removeAll(){    clear();}void MediaSelector::contentsMouseMoveEvent( QMouseEvent *event ){    if ( event->state() == QMouseEvent::LeftButton && !d->haveMoved ) {	int x, y;	contentsToViewport(event->pos().x(), event->pos().y(), x, y);	if ( !d->doingSelection ) {	    QListViewItem *currentItem = selectedItem();	    QListViewItem *itemUnder = itemAt(QPoint(x, y));	    if ( currentItem && currentItem->itemAbove() == itemUnder ) {		d->haveMoved = true;		moveSelectedUp();	    } else if ( currentItem && currentItem->itemBelow() == itemUnder ) {		d->haveMoved = true;		moveSelectedDown();	    }	} else {	    QListViewItem *currentItem = itemAt(QPoint(x, y));	    if ( currentItem == d->prevItem )		return;	    int currentItemPos = currentItem->itemPos();	    QCheckListItem *item =		(currentItemPos == d->firstItemPos) ? (QCheckListItem *)d->prevItem :		((currentItemPos > d->firstItemPos) == (currentItemPos > d->prevItemPos)) ?			    (QCheckListItem *)currentItem : (QCheckListItem *)d->prevItem;	    	    if ( item != d->firstItem )		item->setOn( !item->isOn() );	    d->prevItem = currentItem;	    d->prevItemPos = currentItemPos;	}    }}void MediaSelector::contentsMousePressEvent( QMouseEvent *event ){    d->haveMoved = false;    d->doingSelection = (event->pos().x() <= CHECK_BOX_WIDTH);    if ( d->doingSelection ) {	int x, y;	contentsToViewport(event->pos().x(), event->pos().y(), x, y);	d->firstItem = itemAt(QPoint(x, y));	if ( d->firstItem ) {	    d->firstItemPos = d->firstItem->itemPos();	    d->prevItem = d->firstItem;	    d->prevItemPos = d->firstItemPos;	}    }    QListView::contentsMousePressEvent(event);}void MediaSelector::contentsMouseReleaseEvent( QMouseEvent *event ){    if ( !d->doingSelection ) {	if ( event->button() & QMouseEvent::RightButton )	    d->haveMoved = true;	if ( !d->haveMoved )	    if ( event->button() & QMouseEvent::LeftButton ) {		int x, y;		contentsToViewport(event->pos().x(), event->pos().y(), x, y);		if ( itemAt(QPoint(x, y)) )		    mediaPlayerState->setPlaying();		d->haveMoved = true;	    }    }    QListView::contentsMouseReleaseEvent(event);}const DocLnk *MediaSelector::current() {    MediaSelectorItem *item = (MediaSelectorItem *)selectedItem();    if ( item )	return &(item->file());    if ( firstChild() ) { // try harder	setSelected( firstChild(), TRUE );	item = (MediaSelectorItem *)firstChild();	if ( item )	    return &(item->file());    }    return NULL;}void MediaSelector::categorize(){    CategorySelectDialog *catDlg = new CategorySelectDialog("Document View", this, 0, true);    catDlg->setAllCategories(false);    catDlg->setMinimumWidth(180);    QPEApplication::execDialog(catDlg);    addSelectionToCategory(catDlg->currentCategory());}void MediaSelector::addSelectionToCategory(int catId){    MediaSelectorItem *item = (MediaSelectorItem *)firstChild();    while ( item ) {        if ( item->isOn() ) {	    QArray<int> cats = item->file().categories();	    if ( !cats.contains(catId) ) {		cats.resize(cats.size()+1);		cats[cats.size()-1] = catId;		DocLnk lnk = item->file();		lnk.setCategories(cats);		lnk.writeLink();		item->setFile(lnk);	    }	}	item = (MediaSelectorItem *)item->nextSibling();    }}void MediaSelector::selectAll(){    MediaSelectorItem *item = (MediaSelectorItem *)firstChild();    while ( item ) {        item->setOn(true);	item = (MediaSelectorItem *)item->nextSibling();    }}void MediaSelector::addToSelector( const DocLnk &lnk ){    MediaSelectorItem *item = newItem( lnk );    QListViewItem *current = selectedItem();    if ( current )        item->moveItem( current );    setSelected( item, TRUE );    ensureItemVisible( selectedItem() );}void MediaSelector::removeSelected(){    QListViewItem *item = selectedItem();    if ( item )	deleteItem( (MediaSelectorItem *)item );    setSelected( currentItem(), TRUE );    ensureItemVisible( selectedItem() );}void MediaSelector::moveSelectedUp(){    QListViewItem *item = selectedItem();    if ( item && item->itemAbove() )	item->itemAbove()->moveItem( item );    ensureItemVisible( selectedItem() );}void MediaSelector::moveSelectedDown(){    QListViewItem *item = selectedItem();    if ( item && item->itemBelow() )        item->moveItem( item->itemBelow() );    ensureItemVisible( selectedItem() );}bool MediaSelector::prev(){#ifdef QTOPIA_PHONE    if ( mediaPlayerState->looping() ) 	return TRUE;#endif    QListViewItem *curItem = selectedItem();    QListViewItem *prevItem = 0;    if ( mediaPlayerState->shuffled() ) {	d->shuffledList.find( curItem );	prevItem = d->shuffledList.prev();    } else if ( curItem )	prevItem = curItem->itemAbove();    if ( !prevItem ) {#ifndef QTOPIA_PHONE	if ( mediaPlayerState->looping() ) {	    if ( mediaPlayerState->shuffled() ) {		prevItem = d->shuffledList.last();	    } else {		return last();	    }	} else#endif	    return FALSE;    }    setSelected( prevItem, TRUE );    ensureItemVisible( prevItem );    return TRUE;}bool MediaSelector::next(){#ifdef QTOPIA_PHONE/*    if ( mainDocumentWindow->isRinging() ) {	mainDocumentWindow->songFinished();	return FALSE;    }*/    if ( mediaPlayerState->looping() ) 	return TRUE;#endif    QListViewItem *curItem = selectedItem();    QListViewItem *nextItem = 0;    if ( mediaPlayerState->shuffled() ) {	d->shuffledList.find( curItem );	nextItem = d->shuffledList.next();    } else if ( curItem )	nextItem = curItem->itemBelow();    if ( !nextItem ) {#ifndef QTOPIA_PHONE	if ( mediaPlayerState->looping() ) {	    if ( mediaPlayerState->shuffled() ) {		nextItem = d->shuffledList.first();	    } else {		return first();	    }	} else#endif	    return FALSE;    }    setSelected( nextItem, TRUE );    ensureItemVisible( nextItem );    return TRUE;}bool MediaSelector::advanceSelector(){    QListViewItem *curItem = selectedItem();    if ( curItem ) {	QListViewItem *nextItem = curItem->itemBelow();	if ( nextItem ) {	    setSelected( nextItem, TRUE );	    ensureItemVisible( nextItem );	    return TRUE;	}    }    return FALSE;}bool MediaSelector::first(){    QListViewItem *item = firstChild();    if ( item )        setSelected( item, TRUE );    else	return FALSE;    ensureItemVisible( selectedItem() );    return TRUE;}bool MediaSelector::last(){    QListViewItem *prevItem = NULL;    QListViewItem *item = firstChild();    while ( ( item = item->nextSibling() ) )	prevItem = item;    if ( prevItem )        setSelected( prevItem, TRUE );    else	return FALSE;    ensureItemVisible( selectedItem() );    return TRUE;}void MediaSelector::keyPressEvent(QKeyEvent *ke){    QCheckListItem *currentItem;    switch ( ke->key() ) {        case Key_Left:        case Key_Right:	    currentItem = (QCheckListItem *)selectedItem();	    if ( currentItem )		currentItem->setOn(!currentItem->isOn());	    break;#ifdef QTOPIA_PHONE        case Key_Select:#endif        case Key_Space:        case Key_Enter:            mediaPlayerState->setPlaying(false);            mediaPlayerState->setPlaying(true);            return;        default:            QListView::keyPressEvent(ke);            break;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -