Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

filterdemo.cpp Example File
content/filtering/filterdemo.cpp

    /****************************************************************************
    **
    ** This file is part of the Qt Extended Commercial Package.
    **
    ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
    **
    ** $QT_EXTENDED_DUAL_LICENSE$
    **
    ****************************************************************************/

    #include "filterdemo.h"
    #include <QSoftMenuBar>
    #include <QKeyEvent>

    /*!
        Constructs a FilterDemo widget which is a child of \a parent and has the given window
        \a flags.
     */
    FilterDemo::FilterDemo( QWidget *parent, Qt::WindowFlags flags )
        : QListView( parent )
        , index( 0 )
    {
        setWindowFlags( flags );
        setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );

        setModel( new QContentSetModel( &contentSet, this ) );

        QSoftMenuBar::menuFor( this );
        QSoftMenuBar::setLabel( this, Qt::Key_Select, QSoftMenuBar::NoLabel );
        QSoftMenuBar::setLabel( this, Qt::Key_Back, QSoftMenuBar::Next );

        nextFilter();
    }

    /*!
        Responds to a key press \a event.

        If the key pressed is the back key move to the next filter and accept the event. If it's
        another key, or the last filter has been displayed delegate the key handling to QListView.
    */
    void FilterDemo::keyPressEvent( QKeyEvent *event )
    {
        if ( event->key() == Qt::Key_Back && nextFilter() ) {
            event->accept();
        } else {
            QListView::keyPressEvent( event );
        }
    }

    /*!
        Apply the next set of filters.  If a filter has been applied returns true, otherwise if there
        are no filters remaining returns false.
    */
    bool FilterDemo::nextFilter()
    {
        switch( index++ )
        {
            // Filter for all applications.
        case 0:
            contentSet.setCriteria( QContentFilter( QContent::Application ) );
            return true;
            // Restrict the existing filter to only display content in the 'Games' category.
        case 1:
            contentSet.addCriteria( QContentFilter::Category, "Games", QContentFilter::And );
            return true;
            // Filter for documents with the 'image/jpeg' or 'image/png' MIME type.
        case 2:
            contentSet.setCriteria( QContentFilter::MimeType, "image/jpeg" );
            contentSet.addCriteria( QContentFilter::mimeType( "image/png" ), QContentFilter::Or );
            contentSet.addCriteria( QContentFilter( QContent::Document ), QContentFilter::And );
            return true;
            // Extend the existing filter to also include applications in the 'Games' category.
        case 3:
            contentSet.addCriteria( QContentFilter( QContent::Application )
                                  & QContentFilter::category( "Games" )
                                  , QContentFilter::Or );

            QSoftMenuBar::setLabel( this, Qt::Key_Back, QSoftMenuBar::Back );

            return true;
        default:
            return false;
        }
    }

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt qtextended4.4
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web