Пример #1
0
void WikipediaSettings::parseLangs(const QByteArray &data)
{
    prefMap.clear();
    if (!loader) {
        loader=new WikipediaLoader();
        connect(loader, SIGNAL(entry(QString,QString,QString,int)), SLOT(addEntry(QString,QString,QString,int)));
        connect(loader, SIGNAL(finished()), SLOT(loaderFinished()));
        connect(this, SIGNAL(load(QByteArray)), loader, SLOT(load(QByteArray)));
    }
    emit load(data);
}
Пример #2
0
QgsMilXLibrary::QgsMilXLibrary( QgisInterface *iface, QWidget *parent )
    : QWidget( parent ), mIface( iface ), mLoader( 0 )
{
  setWindowFlags( Qt::Popup );
  setObjectName( "QgsMilXLibrary" );
  setStyleSheet( "QWidget#QgsMilXLibrary { background-color: white;}" );

  QVBoxLayout* layout = new QVBoxLayout( this );
  layout->setMargin( 2 );
  layout->setSpacing( 2 );
  setLayout( layout );

  mFilterLineEdit = new QgsFilterLineEdit( this );
  mFilterLineEdit->setPlaceholderText( tr( "Filter..." ) );
  layout->addWidget( mFilterLineEdit );
  connect( mFilterLineEdit, SIGNAL( textChanged( QString ) ), this, SLOT( filterChanged( QString ) ) );

  mTreeView = new QTreeView( this );
  mTreeView->setFrameShape( QTreeView::NoFrame );
  mTreeView->setEditTriggers( QTreeView::NoEditTriggers );
  mTreeView->setHeaderHidden( true );
  mTreeView->setIconSize( QSize( 32, 32 ) );
  layout->addWidget( mTreeView );
  connect( mTreeView, SIGNAL( clicked( QModelIndex ) ), this, SLOT( itemClicked( QModelIndex ) ) );

  mGalleryModel = new QStandardItemModel( this );
  mFilterProxyModel = new TreeFilterProxyModel( this );
  mFilterProxyModel->setSourceModel( mGalleryModel );

  mLoadingModel = new QStandardItemModel( this );
  QStandardItem* loadingItem = new QStandardItem( tr( "Loading..." ) );
  loadingItem->setEnabled( false );
  mLoadingModel->appendRow( loadingItem );

  setCursor( Qt::WaitCursor );
  mTreeView->setModel( mLoadingModel );
  mLoader = new QgsMilXLibraryLoader( this );
  connect( mLoader, SIGNAL( finished() ), this, SLOT( loaderFinished() ) );
  mLoader->start();
}