Mercurial > hg > easaier-soundaccess
view widgets/ListResultGeneralItemWidget.cpp @ 282:d9319859a4cf tip
(none)
author | benoitrigolleau |
---|---|
date | Fri, 31 Oct 2008 11:00:24 +0000 |
parents | be6d31baecb9 |
children |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ /* Sound Access EASAIER client application. Silogic 2007. Benoit Rigolleau. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the file COPYING included with this distribution for more information. */ #include "ListResultGeneralItemWidget.h" #include "CriteriaDialog.h" #include <QPixmap> #include <QDesktopWidget> #include <QSize> #include <iostream> ListResultGeneralItemWidget::ListResultGeneralItemWidget(QWidget *parent):QWidget(parent){ vLayout1 = new QVBoxLayout(); vLayout2 = new QVBoxLayout(); hLayout1 = new QHBoxLayout(); hLayout2 = new QHBoxLayout(); hLayout3 = new QHBoxLayout(); m_waitingWidget = new WaitingWidget(); m_labelRank = new QLabel(); m_labelIcon = new QLabel(); m_labelTitleArtist = new QLabel(); label4 = new QLabel(""); // for the icons label5 = new QLabel(""); // for the options m_buttonPrev = new QPushButton(); m_buttonSimilar = new QPushButton(); m_confidenceListWidget= new ConfidenceListWidget(); m_confidenceListWidget->setMaximumWidth(180); // set parameters for each component m_labelRank->setMaximumWidth(40); m_labelRank->setMinimumWidth(40); m_labelIcon->setMaximumWidth(40); m_labelIcon->setMinimumWidth(40); label4->setMaximumWidth(40); label4->setMinimumWidth(40); m_labelRank->setAlignment(Qt::AlignCenter); m_labelIcon->setAlignment(Qt::AlignCenter); m_buttonPrev->setMaximumSize(68,34); m_buttonPrev->setMinimumSize(68,34); m_buttonSimilar->setMaximumSize(64,34); m_buttonSimilar->setMinimumSize(64,34); QSize similarIconSize; QSize prevIconSize; similarIconSize.setHeight(34); similarIconSize.setWidth(64); prevIconSize.setHeight(34); prevIconSize.setWidth(68); m_buttonSimilar->setIconSize(similarIconSize); m_buttonPrev->setIconSize(prevIconSize); m_buttonPrev->setIcon(QIcon(":icons/prev.png")); m_buttonPrev->setFlat(true); m_buttonSimilar->setIcon(QIcon(":icons/similar.png")); m_buttonSimilar->setFlat(true); ////////////// /*QFrame *vLine = new QFrame(); vLine->setFrameStyle(QFrame::VLine | QFrame::Raised); vLine->setMaximumWidth(1); vLine->setMinimumWidth(1); QFrame *vLine2 = new QFrame(); vLine2->setFrameStyle(QFrame::VLine | QFrame::Raised); vLine2->setMaximumWidth(1); vLine2->setMinimumWidth(1);*/ QWidget *mainWidget = new QWidget(); hLayout1->setMargin(0); hLayout1->setSpacing(0); //hLayout1->addWidget(vLine); hLayout1->addWidget(mainWidget); //hLayout1->addWidget(vLine2); ////////// QFrame *hLine = new QFrame(); hLine->setFrameStyle(QFrame::HLine | QFrame::Raised); hLine->setMaximumHeight(1); hLine->setMinimumHeight(1); vLayout1->setMargin(0); vLayout1->setSpacing(0); vLayout1->addLayout(hLayout1); vLayout1->addWidget(hLine); this->setLayout(vLayout1); //////// /*QFrame *vLine3 = new QFrame(); vLine3->setFrameStyle(QFrame::VLine | QFrame::Raised); vLine3->setMaximumWidth(1); vLine3->setMinimumWidth(1); QFrame *vLine4 = new QFrame(); vLine4->setFrameStyle(QFrame::VLine | QFrame::Raised); vLine4->setMaximumWidth(1); vLine4->setMinimumWidth(1);*/ mainWidget->setLayout(hLayout2); hLayout2->setMargin(0); hLayout2->setSpacing(0); hLayout2->addWidget(m_labelRank); //hLayout2->addWidget(vLine3); hLayout2->addWidget(m_labelIcon); //hLayout2->addWidget(vLine4); hLayout2->addWidget(m_waitingWidget); ////// m_waitingWidget->setLayout(vLayout2); vLayout2->addLayout(hLayout3); vLayout2->addWidget(label5); vLayout2->setMargin(0); vLayout2->setSpacing(0); ///// /*QFrame *vLine5 = new QFrame(); vLine5->setFrameStyle(QFrame::VLine | QFrame::Raised); vLine5->setMaximumWidth(1); vLine5->setMinimumWidth(1); QFrame *vLine6 = new QFrame(); vLine6->setFrameStyle(QFrame::VLine | QFrame::Raised); vLine6->setMaximumWidth(1); vLine6->setMinimumWidth(1); QFrame *vLine7 = new QFrame(); vLine7->setFrameStyle(QFrame::VLine | QFrame::Raised); vLine7->setMaximumWidth(1); vLine7->setMinimumWidth(1);*/ hLayout3->setMargin(0); hLayout3->setSpacing(0); hLayout3->addWidget(m_labelTitleArtist); //hLayout3->addWidget(vLine5); hLayout3->addWidget(m_confidenceListWidget); //hLayout3->addWidget(vLine6); hLayout3->addWidget(label4); //hLayout3->addWidget(vLine7); hLayout3->addWidget(m_buttonPrev); hLayout3->addWidget(m_buttonSimilar); connect(m_buttonSimilar, SIGNAL(clicked()), this, SLOT(displayCriteria())); connect(m_labelTitleArtist, SIGNAL(linkActivated(QString)), this, SIGNAL(linkActivated(QString))); } ListResultGeneralItemWidget::~ListResultGeneralItemWidget() {} void ListResultGeneralItemWidget::setTitleAndAuthorName(QString author,QString title, QString uri){ QString aux = title; if(aux.length() > 50){ aux.truncate(47); aux+="..."; } QString label; label = author+" - \""; label += "<a href=\""; label += uri; label += "\">"; label += aux; label += "</a>"; m_labelTitleArtist->setText(label); m_labelTitleArtist->setToolTip(title); } void ListResultGeneralItemWidget::setRank(int rank){ m_labelRank->setText(QString().setNum(rank)); } void ListResultGeneralItemWidget::setType(int type){ QString pixmapName; switch(type){ case 0: pixmapName.append(":icons/musicIcon.png"); break; case 1: pixmapName.append(":icons/speechIcon.png"); break; default: break; } m_labelIcon->setPixmap(QPixmap(pixmapName)); } void ListResultGeneralItemWidget::addConfidence(int confidence, QString confidenceName){ m_confidenceListWidget->addConfidence(confidence,confidenceName); } void ListResultGeneralItemWidget::displayCriteria(){ m_criteriaDialog = new CriteriaDialog(); m_criteriaDialog->addCriteria("criteria 1"); m_criteriaDialog->addCriteria("criteria 2"); m_criteriaDialog->addCriteria("criteria 3"); QDesktopWidget screen; int wscreen = screen.screenGeometry().width(); int hscreen = screen.screenGeometry().height(); int wcursor = QCursor::pos().x(); int hcursor = QCursor::pos().y(); int wdialog = m_criteriaDialog->width(); int hdialog = m_criteriaDialog->height(); int posx = wcursor; int posy = hcursor; if(wcursor+wdialog > wscreen){ posx = wscreen - wdialog; } if(hcursor+(hdialog+40) > hscreen){ posy = hscreen - (hdialog+40); } std::cerr << "wscreen:"<< wscreen <<" hscreen:"<<hscreen <<" wdialog:"<<wdialog <<" hdialog:"<<hdialog << std::endl; m_criteriaDialog->setLocation(posx,posy); m_criteriaDialog->setOpacity(0.9); if(m_criteriaDialog->exec()){ m_waitingWidget->setAnimation(true); }else{ m_waitingWidget->setAnimation(false); } delete m_criteriaDialog; }