예제 #1
0
void anibutton::setButtonIcon(int frame)   // member function that catches the frameChanged signal of the QMovie
{
    if(!this->isChecked())return;
    Q_UNUSED(frame)
    QMovie* pMovie = (QMovie*)sender();
    this->setIcon(QIcon(pMovie->currentPixmap()));
}
예제 #2
0
void TestConnectivity::setButtonIcon(int){
    QMovie* caller = (QMovie*)QObject::sender();
    int id = this->myMovies[caller];
    if(ui->listWidget->count() > 0){
        ui->listWidget->item(id)->setIcon(QIcon(caller->currentPixmap()));
    }
}
QIcon getCurrentIcon() {
    QMovie* movie = getMovie();
    int idx = movie->currentFrameNumber();
    QString key = QString("%1").arg(idx);
    if (!icons.contains(key)) {
        QPixmap pm = movie->currentPixmap();
        QIcon retval(pm);
        icons[key] = retval;
    }
    return icons[key];
}
예제 #4
0
void ChatEmoticonMenu::setEmoticons(QHash<QString, QStringList> list)
{
	clearList();
	m_widget = new QWidget;
	m_grid_layout = new QGridLayout(m_widget);
	m_grid_layout->setSpacing(1);
	m_widget->setLayout(m_grid_layout);
	int max_len_size = 0;

	m_desktop_geometry = QSize();

	QHash<int, QString> emotOrder;
	{
		QHashIterator<QString, QStringList> i(list);
		while (i.hasNext())
		{
			i.next();
			QString key = i.key();
			list.remove(key);
			int index = key.indexOf("|");
			int num = key.mid(0, index).toInt();
			key.remove(0, index+1);
			emotOrder.insert(num, key);
			list.insert(key, i.value());
		}
	}

        QHashIterator<int, QString> i(emotOrder);
	while (i.hasNext())
	{
		i.next();
		QStringList values = list.value(i.value());
		if(!values.size())
			continue;

		movieLabel *label = new movieLabel;
		labelList << label;
		QMovie *movie = new QMovie(i.value());
		movieList << movie;
		label->setMovie(movie);
		movie->setCacheMode(QMovie::CacheAll);
		movie->start();
                QSize size = movie->currentPixmap().size();
                label->setMinimumSize(size);
                sizeList << size;
		label->setToolTip(values.first());
		connect(label, SIGNAL(sendMovieTip(const QString &)), this, SIGNAL(insertSmile(const QString &)));
                label->setInsOnUp(m_insonup);
		movie->stop();
	}
//
//	int sq  = std::ceil(std::sqrt((float)list.count()));
//
//	int i = 0, j = 0;
//
//	foreach(const QString &path, emotList)
//	{
//		QStringList values = list.value(path);
//		if(!values.size())
//			continue;
//		movieLabel *l = new movieLabel;
////		QMovie *movie = new QMovie(path + "/" + list.key(name));
//		QMovie *movie = new QMovie(path);
//		movieList.append(movie);
//		l->setMovie(movie);
//		movie->setCacheMode(QMovie::CacheAll);
//		movie->start();
//		QSize movie_size = movie->currentPixmap().size();
//		l->setMinimumSize(movie_size);
//		labelList.append(l);
//		l->setToolTip(values.first());
//		connect(l, SIGNAL(sendMovieTip(const QString &)), this, SIGNAL(insertSmile(const QString &)));
//		m_grid_layout->addWidget(l,i,j);
//		if ( j < sq )
//			j++;
//		else
//		{
//			i++;
//			j = 0;
//		}
//		movie->stop();
//	}
	setWidget(m_widget);
}