void
PlaydarTagCloudModel::startGetTags(const QString& rql)
{
    m_hosts.clear();
    m_tagListBuffer.clear();
    m_tagList.clear();

    m_maxWeight = 0;
    m_maxLogCount = FLT_MIN;
    m_minLogCount = FLT_MAX;
    m_maxTrackCount = 0;
    m_totalTracks = 0;
    m_totalDuration = 0;

    BoffinTagRequest* req = m_playdar->boffinTagcloud(rql);
    connect(req, SIGNAL(tagItem(BoffinTagItem)), SLOT(onTag(BoffinTagItem)));
    connect(req, SIGNAL(tagItem(BoffinTagItem)), SIGNAL(tagItem(BoffinTagItem)));
    connect(req, SIGNAL(error()), this, SLOT(onTagError()));
    if( m_loadingTimer )
    {
    	delete( m_loadingTimer );
    	m_loadingTimer = 0;
    }
    qDebug() << "Fetching rql: " << rql;
}
Ejemplo n.º 2
0
ScrobbleControls::ScrobbleControls( QWidget* parent )
    :QFrame( parent )
{
    QHBoxLayout* layout = new QHBoxLayout( this );
    layout->setContentsMargins( 0, 0, 0, 0 );
    layout->setSpacing( 5 );

    layout->addWidget(ui.love = new QPushButton(tr("love")), 0, Qt::AlignCenter);
    ui.love->setObjectName("love");
    ui.love->setCheckable( true );
    ui.love->setToolTip( tr( "Love track" ) );
    connect( ui.love, SIGNAL( clicked(bool) ), SLOT( onLoveChanged( bool ) ) );
 
    layout->addWidget(ui.tag = new QPushButton(tr("tag")), 0, Qt::AlignCenter);
    ui.tag->setObjectName("tag");
    ui.tag->setToolTip( tr( "Add tags" ) );

    layout->addWidget(ui.share = new QPushButton(tr("share")), 0, Qt::AlignCenter);
    ui.share->setObjectName("share");
    ui.share->setToolTip( tr( "Share" ) );

    QMenu* shareMenu = new QMenu( this );
    shareMenu->addAction( tr( "Share on Last.fm" ), this, SLOT(onShareLastFm()) );
    shareMenu->addAction( tr( "Share on Twitter" ), this, SLOT(onShareTwitter()) );
    shareMenu->addAction( tr( "Share on Facebook" ), this, SLOT(onShareFacebook()) );
    ui.share->setMenu( shareMenu );

    layout->addWidget(ui.buy = new QPushButton(tr("buy")), 0, Qt::AlignCenter);
    ui.buy->setObjectName("buy");
    ui.buy->setToolTip( tr( "Buy" ) );
    ui.buy->setVisible( false );

    ui.love->setAttribute( Qt::WA_LayoutUsesWidgetRect );
    ui.tag->setAttribute( Qt::WA_LayoutUsesWidgetRect );
    ui.share->setAttribute( Qt::WA_LayoutUsesWidgetRect );
    ui.buy->setAttribute( Qt::WA_LayoutUsesWidgetRect );
    ui.love->setAttribute( Qt::WA_MacNoClickThrough );
    ui.tag->setAttribute( Qt::WA_MacNoClickThrough );
    ui.share->setAttribute( Qt::WA_MacNoClickThrough );
    ui.buy->setAttribute( Qt::WA_MacNoClickThrough );

    layout->addStretch( 1 );

    new QShortcut( QKeySequence( Qt::CTRL + Qt::Key_S ), ui.share, SLOT( click() ) );
    new QShortcut( QKeySequence( Qt::CTRL + Qt::Key_T ), ui.tag, SLOT( click() ) );
    new QShortcut( QKeySequence( Qt::CTRL + Qt::Key_L ), ui.love, SLOT( toggle() ) );
    new QShortcut( QKeySequence( Qt::CTRL + Qt::Key_B ), ui.buy, SLOT( click() ) );

    connect( ui.tag, SIGNAL( clicked()), SLOT( onTag()));
    //connect( ui.share, SIGNAL( clicked()), SLOT( onShare()));
}
Ejemplo n.º 3
0
TagBrowserWidget::TagBrowserWidget(PlaydarConnection* playdar, QWidget* parent) :
	QWidget(parent), 
    m_playdar(playdar) 
{
	m_tagCloudModel = new PlaydarTagCloudModel(playdar);
    m_filter = new RelevanceFilter();
    m_filter->setSourceModel(m_tagCloudModel);

	QVBoxLayout* vlayout = new QVBoxLayout(this);
	m_history = new HistoryWidget();
	m_history->newItem("all");
	connect(m_history, SIGNAL(clicked(int, QString)),
			SLOT(onHistoryClicked(int, QString)));
    QPushButton* button = new QPushButton("filter irrelevant tags");
    connect(button, SIGNAL(clicked()), SLOT(onFilterClicked()));
    vlayout->addWidget(button);
	vlayout->addWidget(m_history);

	QWidget* w = new QWidget(this);

	m_view = new TagCloudView(w);
	m_view->setModel(m_filter);

    connect(m_tagCloudModel, SIGNAL(tagItem(BoffinTagItem)), m_view, SLOT(onTag(BoffinTagItem)));
    connect(m_tagCloudModel, SIGNAL(fetchedTags()), m_view, SLOT(onFetchedTags()));

	m_view->setItemDelegate(new TagDelegate);
	connect(m_view->selectionModel(),
			SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
			SLOT(onSelectionChanged(QItemSelection, QItemSelection)));
	vlayout->addWidget(m_view);

// not interested in the playlist widget right now:
//	m_playlistModel = new PlaylistModel(this);
//	m_playlistWidget = new PlaylistWidget(m_playdar, this);
//	m_playlistWidget->setModel(m_playlistModel);
//	vlayout->addWidget(m_playlistWidget);

	m_tagCloudModel->startGetTags();

	this->setLayout(vlayout);
}