void ArchiveList::fillPartialArchiveItem(PartialArchive *a, QTreeWidgetItem *item) { QTreeWidgetItem *subItem = new QTreeWidgetItem(item); QPushButton *pauseButton = new QPushButton(); pauseButton->setText(a->isDownloading() ? tr("Pause") : tr("Continue")); connect(pauseButton, SIGNAL(clicked()), a, SLOT(togglePauseDownload())); downloadPausedMapper->setMapping(a, pauseButton); downloadStartedMapper->setMapping(a, pauseButton); connect(a, SIGNAL(downloadStarted()), downloadStartedMapper, SLOT(map())); connect(a, SIGNAL(downloadPaused()), downloadPausedMapper, SLOT(map())); int pbarColumn; if (compactLayout) { pbarColumn = 1; subItem->setSizeHint(1, pauseButton->sizeHint()); setItemWidget(subItem, 1, pauseButton); QPushButton *detailsButton = new QPushButton(tr("Details")); showDetailsMapper->setMapping(detailsButton, a); connect(detailsButton, SIGNAL(clicked()), showDetailsMapper, SLOT(map())); subItem->setSizeHint(0, detailsButton->sizeHint()); setItemWidget(subItem, 0, detailsButton); } else { pbarColumn = 2; item->setSizeHint(3, pauseButton->sizeHint()); setItemWidget(item, 3, pauseButton); item->setText(1, a->getSizeMB()); QLabel *peerInfo = new QLabel(); subItem->setSizeHint(1, peerInfo->sizeHint()); setItemWidget(subItem, 1, peerInfo); connect(a, SIGNAL(peerInfoUpdated(QString)), peerInfo, SLOT(setText(QString))); QLabel *speedText = new QLabel(); subItem->setSizeHint(2, speedText->sizeHint()); setItemWidget(subItem, 2, speedText); connect(a, SIGNAL(speedTextUpdated(QString)), speedText, SLOT(setText(QString))); QLabel *statusText = new QLabel(); subItem->setSizeHint(3, statusText->sizeHint()); setItemWidget(subItem, 3, statusText); connect(a, SIGNAL(statusTextUpdated(QString)), statusText, SLOT(setText(QString))); } QProgressBar *pbar = new QProgressBar(); pbar->setMinimum(0); pbar->setMaximum(100); item->setSizeHint(pbarColumn, pbar->sizeHint()); setItemWidget(item, pbarColumn, pbar); connect(a, SIGNAL(progressUpdated(int)), pbar, SLOT(setValue(int))); a->emitStatusEvents(); }
void DlgCustomToolbars::importCustomToolbars(const QByteArray& name) { ParameterGrp::handle hGrp = App::GetApplication().GetUserParameter().GetGroup("BaseApp")->GetGroup("Workbench"); const char* subgroup = (type == Toolbar ? "Toolbar" : "Toolboxbar"); if (!hGrp->HasGroup(name.constData())) return; hGrp = hGrp->GetGroup(name.constData()); if (!hGrp->HasGroup(subgroup)) return; hGrp = hGrp->GetGroup(subgroup); std::string separator = "Separator"; std::vector<Base::Reference<ParameterGrp> > hGrps = hGrp->GetGroups(); CommandManager& rMgr = Application::Instance->commandManager(); for (std::vector<Base::Reference<ParameterGrp> >::iterator it = hGrps.begin(); it != hGrps.end(); ++it) { // create a toplevel item QTreeWidgetItem* toplevel = new QTreeWidgetItem(toolbarTreeWidget); bool active = (*it)->GetBool("Active", true); toplevel->setCheckState(0, (active ? Qt::Checked : Qt::Unchecked)); // get the elements of the subgroups std::vector<std::pair<std::string,std::string> > items = (*it)->GetASCIIMap(); for (std::vector<std::pair<std::string,std::string> >::iterator it2 = items.begin(); it2 != items.end(); ++it2) { // since we have stored the separators to the user parameters as (key, pair) we had to // make sure to use a unique key because otherwise we cannot store more than // one. if (it2->first.substr(0, separator.size()) == separator) { QTreeWidgetItem* item = new QTreeWidgetItem(toplevel); item->setText(0, tr("<Separator>")); item->setData(0, Qt::UserRole, QByteArray("Separator")); item->setSizeHint(0, QSize(32, 32)); } else if (it2->first == "Name") { QString toolbarName = QString::fromUtf8(it2->second.c_str()); toplevel->setText(0, toolbarName); } else { Command* pCmd = rMgr.getCommandByName(it2->first.c_str()); if (pCmd) { // command name QTreeWidgetItem* item = new QTreeWidgetItem(toplevel); item->setText(0, qApp->translate(pCmd->className(), pCmd->getMenuText())); item->setData(0, Qt::UserRole, QByteArray(it2->first.c_str())); if (pCmd->getPixmap()) item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap())); item->setSizeHint(0, QSize(32, 32)); } } } } }
LxQtThemeConfig::LxQtThemeConfig(LxQt::Settings *settings, QWidget *parent) : QWidget(parent), ui(new Ui::LxQtThemeConfig), mSettings(settings) { ui->setupUi(this); connect(ui->lxqtThemeList, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(lxqtThemeSelected(QTreeWidgetItem*,int))); QList<LxQt::LxQtTheme> themes = LxQt::LxQtTheme::allThemes(); foreach(LxQt::LxQtTheme theme, themes) { QString themeName = theme.name(); themeName[0] = themeName[0].toTitleCase(); QTreeWidgetItem *item = new QTreeWidgetItem(QStringList(themeName)); if (!theme.previewImage().isEmpty()) { item->setIcon(0, QIcon(theme.previewImage())); } item->setSizeHint(0, QSize(42,42)); // make icons non-cropped item->setData(0, Qt::UserRole, theme.name()); ui->lxqtThemeList->addTopLevelItem(item); }
void DlgCustomKeyboardImp::onModifyMacroAction(const QByteArray& macro) { QVariant data = categoryBox->itemData(categoryBox->currentIndex(), Qt::UserRole); QString group = data.toString(); if (group == QLatin1String("Macros")) { CommandManager & cCmdMgr = Application::Instance->commandManager(); Command* pCmd = cCmdMgr.getCommandByName(macro); for (int i=0; i<commandTreeWidget->topLevelItemCount(); i++) { QTreeWidgetItem* item = commandTreeWidget->topLevelItem(i); QByteArray command = item->data(1, Qt::UserRole).toByteArray(); if (command == macro) { item->setText(1, QString::fromUtf8(pCmd->getMenuText())); item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText())); item->setData(1, Qt::UserRole, macro); item->setSizeHint(0, QSize(32, 32)); item->setBackgroundColor(0, Qt::lightGray); if (pCmd->getPixmap()) item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap())); if (commandTreeWidget->isItemSelected(item)) textLabelDescription->setText(item->toolTip(1)); break; } } } }
void MainWindow::startDownload() { QTreeWidgetItem* tmpItem = new QTreeWidgetItem(QStringList() << currentVideo->getName() << currentVideo->title() << ui.downloadComboFormat->currentText()); tmpItem->setSizeHint(0, QSize(16, 24)); currentVideo->setTreeItem(tmpItem); currentVideo->setQuality(ui.downloadComboQuality->currentIndex()); currentVideo->setConverter(cg->formats.at(ui.downloadComboFormat->currentIndex())._converter->createNewInstance(),cg->formats.at(ui.downloadComboFormat->currentIndex())._mode); QString target; if (cg->settings.value("NeverAskForPath", false).toBool() == false) { target = QFileDialog::getSaveFileName(this, tr("Select Target"), cg->settings.value("savedPath", QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation)).toString() +"/" + currentVideo->getSaveTitle()); } else { target = cg->settings.value("savedPath", QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation)).toString() +"/"+currentVideo->getSaveTitle(); } if (!target.isEmpty()) { if (cg->settings.value("saveLastPath", true) == true) { QString targetDir = target; targetDir.remove(targetDir.split("/", QString::SkipEmptyParts).last()).replace(QRegExp("/+"), "/"); ui.settingsSavedPath->setText(targetDir); } currentVideo->setTargetPath(target); if (cg->settings.value("UseMetadata", false).toBool() == true) { if (ui.downloadComboFormat->currentIndex() == 4 || ui.downloadComboFormat->currentIndex() == 5) { metadataDialog = new QDialog; mdui.setupUi(metadataDialog); mdui.title->setText(currentVideo->title()); metadataDialog->setModal(true); metadataDialog->exec(); currentVideo->setMetaTitle(mdui.title->text()); currentVideo->setMetaArtist(mdui.artist->text()); delete metadataDialog; } } cg->addDownload(currentVideo); ui.downloadTree->insertTopLevelItem(0, tmpItem); currentVideo->_progressBar = new QProgressBar(); currentVideo->_progressBar->setValue(0); currentVideo->_progressBar->setMaximum(1); ui.downloadTree->setItemWidget(tmpItem, 3, currentVideo->_progressBar); ((QProgressBar*) ui.downloadTree->itemWidget(tmpItem, 3))->setMaximum(100); connect(currentVideo, SIGNAL(progressChanged(int,int)),ui.downloadTree, SLOT(update())); connect(currentVideo, SIGNAL(downloadFinished()), currentVideo, SLOT(startConvert())); connect(currentVideo, SIGNAL(conversionFinished(video*)), this, SLOT(handleFinishedConversion(video*))); currentVideo = NULL; ui.downloadLineEdit->clear(); } }
void AlbumList::resizeLastHint() { int counts = childCount(); QTreeWidgetItem* item = child(counts-1); if( !item ) return; // qDebug() << counts; // 当前行数小于8行,则需要增加高度 if( 8 - counts > 1 ) { item->setSizeHint( 0, QSize(1, 16*(8-counts)) ); } else { int h = item->sizeHint(0).height(); if( h > 16 ) item->setSizeHint( 0, QSize(1, h/(counts-8)) ); } }
void Wizard::slotCheckPrograms() { m_check.programList->setColumnCount(2); m_check.programList->setRootIsDecorated(false); m_check.programList->setHeaderHidden(true); QSize itemSize(20, fontMetrics().height() * 2.5); m_check.programList->setColumnWidth(0, 30); m_check.programList->setIconSize(QSize(24, 24)); QTreeWidgetItem *item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("FFmpeg & ffplay")); item->setData(1, Qt::UserRole, i18n("Required for webcam capture")); item->setSizeHint(0, itemSize); QString exepath = KStandardDirs::findExe("ffmpeg"); if (exepath.isEmpty()) item->setIcon(0, m_badIcon); else if (KStandardDirs::findExe("ffplay").isEmpty()) item->setIcon(0, m_badIcon); else item->setIcon(0, m_okIcon); item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("Recordmydesktop")); item->setData(1, Qt::UserRole, i18n("Required for screen capture")); item->setSizeHint(0, itemSize); if (KStandardDirs::findExe("recordmydesktop").isEmpty()) item->setIcon(0, m_badIcon); else item->setIcon(0, m_okIcon); item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("Dvgrab")); item->setData(1, Qt::UserRole, i18n("Required for firewire capture")); item->setSizeHint(0, itemSize); if (KStandardDirs::findExe("dvgrab").isEmpty()) item->setIcon(0, m_badIcon); else item->setIcon(0, m_okIcon); item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("Dvdauthor")); item->setData(1, Qt::UserRole, i18n("Required for creation of DVD")); item->setSizeHint(0, itemSize); if (KStandardDirs::findExe("dvdauthor").isEmpty()) item->setIcon(0, m_badIcon); else item->setIcon(0, m_okIcon); item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("Mkisofs")); item->setData(1, Qt::UserRole, i18n("Required for creation of DVD ISO images")); item->setSizeHint(0, itemSize); if (KStandardDirs::findExe("mkisofs").isEmpty()) item->setIcon(0, m_badIcon); else item->setIcon(0, m_okIcon); }
/** * @brief 遍历所有的Block * @param dirPath 目录路径 */ void WidgetMain::scanBlocks(const QString &dirPath, QTreeWidgetItem *parentItem, QMenu *parentMenu) { QDir dir(dirPath); DataStruct data; { dir.setFilter(QDir::Files); QStringList tmp; foreach (const QString &fileName, dir.entryList()) { QString filePath = dirPath + "/" + fileName; //啦拉拉在这里读取数据 QFileInfo infor(filePath); if(0 == infor.size()) { continue; } data = GetBlockData::getBlockData(filePath); Translate::map_fileName_filePath_.insert(infor.baseName(), filePath); if(!data.isEmpty()) { hash_blockPath_blockData_.insert(data.ui.name, data);//创建的时候需要的是模块的文件名 map_moduleName_moduleTag_.insert(data.ui.name, data.ui.tag);//ui.fileName是模块的显示的名字... tmp.append(data.ui.name); } //处理menu相关 QAction *pAction = parentMenu->addAction(infor.baseName()); connect(pAction, SIGNAL(triggered()), this, SLOT(slotActionTriggered())); } map_dirPath_blockNames_.insert(dirPath, tmp); } { dir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot); foreach (const QString &dirName, dir.entryList()) { QString childDirPath = dirPath + "/" + dirName; //对treeWidget的处理 QTreeWidgetItem *pChildItem = new QTreeWidgetItem(parentItem, QStringList(QString(dirName))); //QTreeWidgetItem *pChildItem = new ListWidget(parentItem, QStringList(QString(dirName))); pChildItem->setData(0,Qt::UserRole+1,dirPath); pChildItem->setSizeHint(0, QSize(100, 20)); parentItem->addChild(pChildItem); map_treeWidgetItemPointer_pageIndex_.insert(pChildItem, pageIndex_++); //memu QMenu *pMenu = parentMenu->addMenu(dirName); scanBlocks(childDirPath, pChildItem, pMenu); } } }
void DlgCustomToolbars::on_categoryBox_activated(int index) { QVariant data = categoryBox->itemData(index, Qt::UserRole); QString group = data.toString(); commandTreeWidget->clear(); CommandManager & cCmdMgr = Application::Instance->commandManager(); std::vector<Command*> aCmds = cCmdMgr.getGroupCommands(group.toLatin1()); // Create a separator item QTreeWidgetItem* sepitem = new QTreeWidgetItem(commandTreeWidget); sepitem->setText(1, tr("<Separator>")); sepitem->setData(1, Qt::UserRole, QByteArray("Separator")); sepitem->setSizeHint(0, QSize(32, 32)); if (group == QLatin1String("Macros")) { for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) { QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget); item->setText(1, QString::fromUtf8((*it)->getMenuText())); item->setToolTip(1, QString::fromUtf8((*it)->getToolTipText())); item->setData(1, Qt::UserRole, QByteArray((*it)->getName())); item->setSizeHint(0, QSize(32, 32)); if ((*it)->getPixmap()) item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap())); } } else { for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) { QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget); item->setText(1, qApp->translate((*it)->className(), (*it)->getMenuText())); item->setToolTip(1, qApp->translate((*it)->className(), (*it)->getToolTipText())); item->setData(1, Qt::UserRole, QByteArray((*it)->getName())); item->setSizeHint(0, QSize(32, 32)); if ((*it)->getPixmap()) item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap())); } } }
/** Shows all commands of this category */ void DlgCustomCommandsImp::onGroupActivated(QTreeWidgetItem* item) { if (!item) return; QVariant data = item->data(0, Qt::UserRole); QString group = data.toString(); commandTreeWidget->clear(); CommandManager & cCmdMgr = Application::Instance->commandManager(); std::vector<Command*> aCmds = cCmdMgr.getGroupCommands(group.toLatin1()); if (group == QLatin1String("Macros")) { for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) { QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget); item->setText(1, QString::fromUtf8((*it)->getMenuText())); item->setToolTip(1, QString::fromUtf8((*it)->getToolTipText())); item->setData(1, Qt::UserRole, QByteArray((*it)->getName())); item->setSizeHint(0, QSize(32, 32)); if ((*it)->getPixmap()) item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap())); } } else { for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) { QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget); item->setText(1, qApp->translate((*it)->className(), (*it)->getMenuText())); item->setToolTip(1, qApp->translate((*it)->className(), (*it)->getToolTipText())); item->setData(1, Qt::UserRole, QByteArray((*it)->getName())); item->setSizeHint(0, QSize(32, 32)); if ((*it)->getPixmap()) item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap())); } } textLabel->setText(QString()); }
void Sak::addDefaultHit() { QTreeWidgetItem* i = new QTreeWidgetItem; Task::Hit p(QDateTime::currentDateTime(), 0); i->setText(0, p.timestamp.toString(DATETIMEFORMAT)); i->setText(1, m_editedTasks.begin().key()); i->setIcon(1, m_editedTasks.begin().value().icon); i->setSizeHint(0, QSize(32, 32)); i->setText(3, QString("%1").arg(p.duration)); i->setFlags(i->flags() | Qt::ItemIsEditable); hitsList->addTopLevelItem( i ); m_changedHit=true; m_editedTasks[i->text(1)].hits[i->text(2)] << p; i->setData(1, Qt::UserRole, qVariantFromValue(HitElement(&m_editedTasks[i->text(1)], i->text(2), p.timestamp, p.duration))); }
void DlgCustomKeyboardImp::onAddMacroAction(const QByteArray& macro) { QVariant data = categoryBox->itemData(categoryBox->currentIndex(), Qt::UserRole); QString group = data.toString(); if (group == QLatin1String("Macros")) { CommandManager & cCmdMgr = Application::Instance->commandManager(); Command* pCmd = cCmdMgr.getCommandByName(macro); QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget); item->setText(1, QString::fromUtf8(pCmd->getMenuText())); item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText())); item->setData(1, Qt::UserRole, macro); item->setSizeHint(0, QSize(32, 32)); if (pCmd->getPixmap()) item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap())); } }
void DownloadLogImpl::buildLog(QList<LogEntry> logEntries, VideoInformation *videoInformation) { for (int n = 0; n < logEntries.count(); n++) { QTreeWidgetItem *item = new LogTreeWidgetItem(lsvLog); item->setText(0, logEntries.at(n).dateTime.toString()); item->setText(1, logEntries.at(n).title); item->setText(2, logEntries.at(n).URL); item->setIcon(0, QIcon(videoInformation->getHostImage(logEntries.at(n).URL))); item->setSizeHint(0, QSize(18,18)); item->setData(0, Qt::UserRole, logEntries.at(n).dateTime); } // sort list lsvLog->sortItems(0, Qt::AscendingOrder); }
void UpdateCenterImpl::fillUpdates() { for (int n = 0; n < updates->getUpdatesCount(); n++) { QTreeWidgetItem *item = new QTreeWidgetItem(lsvUpdates); item->setTextAlignment(1, Qt::AlignHCenter | Qt::AlignVCenter); item->setTextAlignment(2, Qt::AlignRight | Qt::AlignVCenter); item->setTextAlignment(3, Qt::AlignHCenter | Qt::AlignVCenter); item->setText(0, updates->getUpdateItem(n)->getCaption()); item->setText(1, updates->getUpdateItem(n)->getVersion()); item->setText(2, fileSizeToString(updates->getUpdateItem(n)->getSize())); item->setText(3, "-"); item->setSizeHint(0, QSize(18,18)); item->setCheckState(0, Qt::Checked); } }
void JBlockerMainWindow::slt_showInboxMessages() { qDebug() << "+ " << __PRETTY_FUNCTION__; p_inboxW->clear(); /* Show messages classified based on sender's name */ p_nameToMessageHash = p_messageCore->getNameInfoHash(); /* Get name list */ QList<QString> nameList = p_nameToMessageHash.keys(); /* Get current account message type */ QMessage::TypeFlags accountType = p_messageCore->getCurrentAccountType(); /* Put classified infos into inbox tree widget */ for(int i=0; i<nameList.count(); i++) { QString name = nameList.at(i); QStringList rootItemString; /* Set the root element for each sender */ /* Check message type */ rootItemString << (accountType == QMessage::Sms ? p_messageCore->getContactName(name) : name) << QString("%1 message").arg(p_messageCore->messageCount(name)); QTreeWidgetItem* parentItem = new QTreeWidgetItem(rootItemString); parentItem->setData(0, MessageIdRole, name); p_inboxW->addTopLevelItem(parentItem); /* Set children items for each sender */ QList<QMessage>* messageList = p_messageCore->getMessageList(name); for(int j=0; j<messageList->count(); j++) { QMessage msg = messageList->at(j); QStringList childItemString; QString subject = QString::fromUtf8(msg.subject().toAscii()); childItemString << subject << msg.date().toLocalTime().toString(QString("hh:mm:ss dd.MM.yyyy")); QTreeWidgetItem* childItem = new QTreeWidgetItem(childItemString); /* Set messageID as the DATA of each children items */ childItem->setData(0, MessageIdRole, msg.id().toString()); /* Set the size hint of children */ childItem->setSizeHint(0, p_inboxW->headerItem()->sizeHint(0)); p_inboxW->topLevelItem(i)->addChild(childItem); } } }
void ItemBoxTreeWidget::adjustSubListSize(QTreeWidgetItem *cat_item) { QTreeWidgetItem *embedItem = cat_item->child(0); if (embedItem == 0) { return; } ItemBoxCategoryListView *list_widget = static_cast<ItemBoxCategoryListView *>(itemWidget(embedItem, 0)); list_widget->setFixedWidth(header()->width()); list_widget->doItemsLayout(); const int height = qMax(list_widget->contentsSize().height(), 1); list_widget->setFixedHeight(height); //list_widget->setFlow(QListView::TopToBottom); list_widget->setFlow((list_widget->viewMode() == QListView::ListMode) ? QListView::TopToBottom : QListView::LeftToRight); embedItem->setSizeHint(0, QSize(-1, height - 1)); viewport()->update(); }
/** Shows all commands of this category */ void DlgCustomKeyboardImp::on_categoryBox_activated(int index) { QVariant data = categoryBox->itemData(index, Qt::UserRole); QString group = data.toString(); commandTreeWidget->clear(); buttonAssign->setEnabled(false); buttonReset->setEnabled(false); accelLineEditShortcut->clear(); editShortcut->clear(); CommandManager & cCmdMgr = Application::Instance->commandManager(); std::vector<Command*> aCmds = cCmdMgr.getGroupCommands( group.toAscii() ); for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) { QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget); item->setText(1, qApp->translate((*it)->className(), (*it)->getMenuText())); item->setToolTip(1, qApp->translate((*it)->className(), (*it)->getToolTipText())); item->setData(1, Qt::UserRole, QByteArray((*it)->getName())); item->setSizeHint(0, QSize(32, 32)); if ((*it)->getPixmap()) item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap())); } }
void nedTreeView::build() { if( net != NULL ) { tree->clear(); QTreeWidgetItem *networkItem; networkItem = new QTreeWidgetItem( tree ); networkItem->setText( 0, tr( "Network" ) ); networkItem->setText( 1, QString().setNum( net->subnetworksCount() ) + tr( " subnetworks") ); for( int i = 0; i < net->subnetworksCount(); i++ ) { QTreeWidgetItem *subnetworkItem = new QTreeWidgetItem( networkItem ); subnetworkItem->setText( 0, tr( "Subnetwork" ) ); QString subText( "S" ); subText += QString().setNum( i + 1 ); subText += ": ("; subText += QString().setNum( net->subnetwork( i ).illuminationPrototype() ); subText += ")"; subnetworkItem->setText( 1, subText ); QTreeWidgetItem *neuronItem = new QTreeWidgetItem( subnetworkItem ); neuronItem->setText( 0, tr( "Neuron" ) ); neuronItem->setText( 2, tr("weak") ); neuronItem->setText( 3, QString().setNum( net->subnetwork( i ).weakNeuron().upperThreshold() ) ); neuronItem->setText( 4, QString().setNum( net->subnetwork( i ).weakNeuron().lowerThreshold() ) ); neuronItem = new QTreeWidgetItem( subnetworkItem ); neuronItem->setText( 0, tr( "Neuron" ) ); neuronItem->setText( 2, tr("strong") ); neuronItem->setText( 3, QString().setNum( net->subnetwork( i ).strongNeuron().upperThreshold() ) ); neuronItem->setText( 4, QString().setNum( net->subnetwork( i ).strongNeuron().lowerThreshold() ) ); tree->setItemExpanded( subnetworkItem, true ); } tree->setItemExpanded( networkItem, true ); networkItem->setSizeHint( 0, QSize( 300, 40 ) ); tree->resizeColumnToContents( 0 ); } }
void DlgCustomToolbars::onModifyMacroAction(const QByteArray& macro) { QVariant data = categoryBox->itemData(categoryBox->currentIndex(), Qt::UserRole); QString group = data.toString(); if (group == QLatin1String("Macros")) { CommandManager & cCmdMgr = Application::Instance->commandManager(); Command* pCmd = cCmdMgr.getCommandByName(macro); // the left side for (int i=0; i<commandTreeWidget->topLevelItemCount(); i++) { QTreeWidgetItem* item = commandTreeWidget->topLevelItem(i); QByteArray command = item->data(1, Qt::UserRole).toByteArray(); if (command == macro) { item->setText(1, QString::fromUtf8(pCmd->getMenuText())); item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText())); item->setData(1, Qt::UserRole, macro); item->setSizeHint(0, QSize(32, 32)); if (pCmd->getPixmap()) item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap())); break; } } // the right side for (int i=0; i<toolbarTreeWidget->topLevelItemCount(); i++) { QTreeWidgetItem* toplevel = toolbarTreeWidget->topLevelItem(i); for (int j=0; j<toplevel->childCount(); j++) { QTreeWidgetItem* item = toplevel->child(j); QByteArray command = item->data(0, Qt::UserRole).toByteArray(); if (command == macro) { item->setText(0, QString::fromUtf8(pCmd->getMenuText())); if (pCmd->getPixmap()) item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap())); } } } } }
/** Adds a new action */ void DlgCustomToolbars::on_moveActionRightButton_clicked() { QTreeWidgetItem* item = commandTreeWidget->currentItem(); if (item) { QTreeWidgetItem* current = toolbarTreeWidget->currentItem(); if (!current) current = toolbarTreeWidget->topLevelItem(0); else if (current->parent()) current = current->parent(); if (current && !current->parent()) { QTreeWidgetItem* copy = new QTreeWidgetItem(current); copy->setText(0, item->text(1)); copy->setIcon(0, item->icon(0)); QByteArray data = item->data(1, Qt::UserRole).toByteArray(); copy->setData(0, Qt::UserRole, data); copy->setSizeHint(0, QSize(32, 32)); addCustomCommand(current->text(0), data); } } QVariant data = workbenchBox->itemData(workbenchBox->currentIndex(), Qt::UserRole); QString workbench = data.toString(); exportCustomToolbars(workbench.toLatin1()); }
/** Checks for an already occupied shortcut. */ void DlgCustomKeyboardImp::on_editShortcut_textChanged(const QString& sc) { assignedTreeWidget->clear(); QTreeWidgetItem* item = commandTreeWidget->currentItem(); if (!item) return; QVariant data = item->data(1, Qt::UserRole); QByteArray name = data.toByteArray(); // command name CommandManager & cCmdMgr = Application::Instance->commandManager(); Command* cmd = cCmdMgr.getCommandByName(name.constData()); if (cmd && !cmd->getAction()) { buttonAssign->setEnabled(false); // command not in use return; } buttonAssign->setEnabled(true); QKeySequence ks(sc); if (!ks.isEmpty()) { int countAmbiguous = 0; QString ambiguousCommand; QString ambiguousMenu; CommandManager & cCmdMgr = Application::Instance->commandManager(); std::vector<Command*> cmds = cCmdMgr.getAllCommands(); for (std::vector<Command*>::iterator it = cmds.begin(); it != cmds.end(); ++it) { QList<QAction*> acts; if ((*it)->getAction()) { // A command may have several QAction's. So, check all of them if one of them matches (See bug #0002160) QList<QAction*> acts = (*it)->getAction()->findChildren<QAction*>(); for (QList<QAction*>::iterator jt = acts.begin(); jt != acts.end(); ++jt) { if ((*jt)->shortcut() == ks) { ++countAmbiguous; ambiguousCommand = QString::fromAscii((*it)->getName()); // store the last one ambiguousMenu = qApp->translate((*it)->className(), (*it)->getMenuText()); QTreeWidgetItem* item = new QTreeWidgetItem(assignedTreeWidget); item->setText(1, qApp->translate((*it)->className(), (*it)->getMenuText())); item->setToolTip(1, qApp->translate((*it)->className(), (*it)->getToolTipText())); item->setData(1, Qt::UserRole, QByteArray((*it)->getName())); item->setSizeHint(0, QSize(32, 32)); item->setBackgroundColor(0, Qt::lightGray); if ((*it)->getPixmap()) item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap())); break; } } } } if (countAmbiguous > 0) assignedTreeWidget->resizeColumnToContents(0); if (countAmbiguous > 1) { QMessageBox::warning(this, tr("Multiple defined shortcut"), tr("The shortcut '%1' is defined more than once. This could result into unexpected behaviour.").arg(sc) ); editShortcut->setFocus(); buttonAssign->setEnabled(false); } else if (countAmbiguous == 1 && ambiguousCommand != QLatin1String(name)) { QMessageBox::warning(this, tr("Already defined shortcut"), tr("The shortcut '%1' is already assigned to '%2'.\n\nPlease define another shortcut.").arg(sc).arg(ambiguousMenu) ); editShortcut->setFocus(); buttonAssign->setEnabled(false); } else { if (cmd && cmd->getAction() && cmd->getAction()->shortcut() == ks) buttonAssign->setEnabled(false); } } else { if (cmd && cmd->getAction() && cmd->getAction()->shortcut().isEmpty()) buttonAssign->setEnabled(false); // both key sequences are empty } }
void PhotoDialog::updatePhotoList() { #ifdef PHOTO_DEBUG std::cerr << "PhotoDialog::updatePhotoList()" << std::endl; #endif /* get current item */ QTreeWidgetItem *item = ui.peerTreeWidget->currentItem(); if (!item) { /* leave current list */ #ifdef PHOTO_DEBUG std::cerr << "PhotoDialog::updatePhotoList() No Current item -> leave" << std::endl; #endif return; } /* check if it has changed */ std::string pid = item->text(PHOTO_PEER_COL_PID).toStdString(); std::string sid = item->text(PHOTO_PEER_COL_SID).toStdString(); if ((mCurrentPID == pid) && (mCurrentSID == sid)) { /* still good */ #ifdef PHOTO_DEBUG std::cerr << "PhotoDialog::updatePhotoList() List still good!" << std::endl; #endif return; } #ifdef PHOTO_DEBUG std::cerr << "PhotoDialog::updatePhotoList() pid: " << pid << " sid: " << sid << std::endl; #endif /* get the list of photos */ ui.photoTreeWidget->clear(); QList<QTreeWidgetItem *> items; if (sid != "") { #ifdef PHOTO_DEBUG std::cerr << "PhotoDialog::updatePhotoList() SID -> showing show" << std::endl; #endif /* load up show list */ RsPhotoShowDetails detail; rsPhoto->getShowDetails(pid, sid, detail); std::list<RsPhotoShowInfo>::iterator sit; for(sit = detail.photos.begin(); sit != detail.photos.end(); sit++) { RsPhotoDetails photoDetail; if (!rsPhoto->getPhotoDetails(pid, sit->photoId, photoDetail)) { #ifdef PHOTO_DEBUG std::cerr << "PhotoDialog::updatePhotoList() getPhotoDetails: " << sit->photoId << " FAILED" << std::endl; #endif continue; } QTreeWidgetItem *photoItem = new QTreeWidgetItem((QTreeWidget*)0); if (photoDetail.isAvailable) { QPixmap qpp(QString::fromStdString(photoDetail.path)); photoItem->setIcon(PHOTO_LIST_COL_PHOTO, QIcon(qpp.scaledToHeight(PHOTO_ICON_SIZE))); QSize iconSize(PHOTO_ICON_SIZE + 10,PHOTO_ICON_SIZE + 10); photoItem->setSizeHint(PHOTO_LIST_COL_PHOTO, iconSize); } else { photoItem->setText(PHOTO_LIST_COL_PHOTO, "Photo Not Available"); } photoItem->setText(PHOTO_LIST_COL_NAME, QString::fromStdString(photoDetail.name)); photoItem->setText(PHOTO_LIST_COL_COMMENT, QString::fromStdWString(photoDetail.comment)); photoItem->setText(PHOTO_LIST_COL_DATE, QString::fromStdString(photoDetail.date)); photoItem->setText(PHOTO_LIST_COL_LOCATION, QString::fromStdString(photoDetail.location)); photoItem->setText(PHOTO_LIST_COL_SIZE, QString::number(photoDetail.size)); photoItem->setText(PHOTO_LIST_COL_PEERID, QString::fromStdString(photoDetail.id)); photoItem->setText(PHOTO_LIST_COL_PHOTOID, QString::fromStdString(photoDetail.hash)); items.append(photoItem); } } else { #ifdef PHOTO_DEBUG std::cerr << "PhotoDialog::updatePhotoList() No SID -> show all" << std::endl; #endif std::list<std::string> photoIds; std::list<std::string>::iterator pit; rsPhoto->getPhotoList(pid, photoIds); for(pit = photoIds.begin(); pit != photoIds.end(); pit++) { RsPhotoDetails photoDetail; if (!rsPhoto->getPhotoDetails(pid, *pit, photoDetail)) { #ifdef PHOTO_DEBUG std::cerr << "PhotoDialog::updatePhotoList() getPhotoDetails: " << *pit << " FAILED" << std::endl; #endif continue; } QTreeWidgetItem *photoItem = new QTreeWidgetItem((QTreeWidget*)0); if (photoDetail.isAvailable) { QPixmap qpp(QString::fromStdString(photoDetail.path)); photoItem->setIcon(PHOTO_LIST_COL_PHOTO, QIcon(qpp.scaledToHeight(PHOTO_ICON_SIZE))); QSize iconSize(PHOTO_ICON_SIZE + 10,PHOTO_ICON_SIZE + 10); photoItem->setSizeHint(PHOTO_LIST_COL_PHOTO, iconSize); } else { photoItem->setText(PHOTO_LIST_COL_PHOTO, "Photo Not Available"); } photoItem->setText(PHOTO_LIST_COL_NAME, QString::fromStdString(photoDetail.name)); photoItem->setText(PHOTO_LIST_COL_COMMENT, QString::fromStdWString(photoDetail.comment)); photoItem->setText(PHOTO_LIST_COL_DATE, QString::fromStdString(photoDetail.date)); photoItem->setText(PHOTO_LIST_COL_LOCATION, QString::fromStdString(photoDetail.location)); photoItem->setText(PHOTO_LIST_COL_SIZE, QString::number(photoDetail.size)); photoItem->setText(PHOTO_LIST_COL_PEERID, QString::fromStdString(photoDetail.id)); photoItem->setText(PHOTO_LIST_COL_PHOTOID, QString::fromStdString(photoDetail.hash)); #ifdef PHOTO_DEBUG std::cerr << "PhotoDialog::updatePhotoList() added Item: " << *pit << std::endl; #endif items.append(photoItem); } } /* update ids? */ mCurrentPID = pid; mCurrentSID = sid; /* add the items in! */ ui.photoTreeWidget->insertTopLevelItems(0, items); ui.photoTreeWidget->update(); }
void QTreeWidgetItemProto::setSizeHint(int column, const QSize &size) { QTreeWidgetItem *item = qscriptvalue_cast<QTreeWidgetItem*>(thisObject()); if (item) item->setSizeHint(column, size); }
void Wizard::checkMltComponents() { QSize itemSize(20, fontMetrics().height() * 2.5); m_mltCheck.programList->setColumnWidth(0, 30); m_mltCheck.programList->setIconSize(QSize(24, 24)); QTreeWidgetItem *mltitem = new QTreeWidgetItem(m_mltCheck.programList); QTreeWidgetItem *meltitem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("Melt") + " (" + KdenliveSettings::rendererpath() + ')'); meltitem->setData(1, Qt::UserRole, i18n("Required for rendering (part of MLT package)")); meltitem->setSizeHint(0, itemSize); meltitem->setIcon(0, m_okIcon); Mlt::Repository *repository = Mlt::Factory::init(); if (!repository) { mltitem->setData(1, Qt::UserRole, i18n("Cannot start the MLT video backend!")); mltitem->setIcon(0, m_badIcon); m_systemCheckIsOk = false; button(QWizard::NextButton)->setEnabled(false); } else { int mltVersion = (mltVersionMajor << 16) + (mltVersionMinor << 8) + mltVersionRevision; mltitem->setText(1, i18n("MLT version: %1", mlt_version_get_string())); mltitem->setSizeHint(0, itemSize); if (mlt_version_get_int() < 1792) { mltitem->setData(1, Qt::UserRole, i18n("Your MLT version is unsupported!!!")); mltitem->setIcon(0, m_badIcon); m_systemCheckIsOk = false; button(QWizard::NextButton)->setEnabled(false); } else if (mlt_version_get_int() < mltVersion) { mltitem->setData(1, Qt::UserRole, i18n("Please upgrade to MLT %1.%2.%3", mltVersionMajor, mltVersionMinor, mltVersionRevision)); mltitem->setIcon(0, m_badIcon); } else { mltitem->setData(1, Qt::UserRole, i18n("MLT video backend!")); mltitem->setIcon(0, m_okIcon); } // Retrieve the list of available transitions. Mlt::Properties *producers = repository->producers(); QStringList producersItemList; for (int i = 0; i < producers->count(); ++i) producersItemList << producers->get_name(i); delete producers; Mlt::Properties *consumers = repository->consumers(); QStringList consumersItemList; for (int i = 0; i < consumers->count(); ++i) consumersItemList << consumers->get_name(i); delete consumers; // SDL module QTreeWidgetItem *sdlItem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("SDL module")); sdlItem->setData(1, Qt::UserRole, i18n("Required for Kdenlive")); sdlItem->setSizeHint(0, itemSize); if (!consumersItemList.contains("sdl")) { sdlItem->setIcon(0, m_badIcon); m_systemCheckIsOk = false; button(QWizard::NextButton)->setEnabled(false); } else { sdlItem->setIcon(0, m_okIcon); } // AVformat module QTreeWidgetItem *avformatItem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("Avformat module (FFmpeg)")); avformatItem->setData(1, Qt::UserRole, i18n("Required to work with various video formats (hdv, mpeg, flash, ...)")); avformatItem->setSizeHint(0, itemSize); Mlt::Consumer *consumer = NULL; Mlt::Profile p; if (consumersItemList.contains("avformat")) consumer = new Mlt::Consumer(p, "avformat"); if (consumer == NULL || !consumer->is_valid()) { avformatItem->setIcon(0, m_badIcon); m_mltCheck.tabWidget->setTabEnabled(1, false); } else { avformatItem->setIcon(0, m_okIcon); consumer->set("vcodec", "list"); consumer->set("acodec", "list"); consumer->set("f", "list"); consumer->start(); QStringList result; Mlt::Properties vcodecs((mlt_properties) consumer->get_data("vcodec")); for (int i = 0; i < vcodecs.count(); ++i) result << QString(vcodecs.get(i)); m_mltCheck.vcodecs_list->addItems(result); KdenliveSettings::setVideocodecs(result); result.clear(); Mlt::Properties acodecs((mlt_properties) consumer->get_data("acodec")); for (int i = 0; i < acodecs.count(); ++i) result << QString(acodecs.get(i)); m_mltCheck.acodecs_list->addItems(result); KdenliveSettings::setAudiocodecs(result); result.clear(); Mlt::Properties formats((mlt_properties) consumer->get_data("f")); for (int i = 0; i < formats.count(); ++i) result << QString(formats.get(i)); m_mltCheck.formats_list->addItems(result); KdenliveSettings::setSupportedformats(result); checkMissingCodecs(); delete consumer; } // Image module QTreeWidgetItem *imageItem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("QImage module")); imageItem->setData(1, Qt::UserRole, i18n("Required to work with images")); imageItem->setSizeHint(0, itemSize); if (!producersItemList.contains("qimage")) { imageItem->setIcon(0, m_badIcon); imageItem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("Pixbuf module")); imageItem->setData(1, Qt::UserRole, i18n("Required to work with images")); imageItem->setSizeHint(0, itemSize); if (producersItemList.contains("pixbuf")) { imageItem->setIcon(0, m_badIcon); } else { imageItem->setIcon(0, m_okIcon); } } else { imageItem->setIcon(0, m_okIcon); } // Titler module QTreeWidgetItem *titleItem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("Title module")); titleItem->setData(1, Qt::UserRole, i18n("Required to work with titles")); titleItem->setSizeHint(0, itemSize); if (!producersItemList.contains("kdenlivetitle")) { KdenliveSettings::setHastitleproducer(false); titleItem->setIcon(0, m_badIcon); } else { titleItem->setIcon(0, m_okIcon); KdenliveSettings::setHastitleproducer(true); } } }
void Page_ManagePartitions::refreshPartitionView() { // Save vertical scroll bar value int scrollYValue = 0; QScrollBar *scrollBar = ui->PartitionView->verticalScrollBar(); if (scrollBar) scrollYValue = scrollBar->value(); // Clean up ui->PartitionView->clear(); MParted::Devices devices = mparted->getDevices(); QFont font; font.setBold(true); font.setWeight(75); for (int i = 0; i < devices.size(); i++) { MParted::Device &device = devices[i]; QTreeWidgetItem *itemDevice = new QTreeWidgetItem(); ui->PartitionView->addTopLevelItem(itemDevice); ui->PartitionView->setFirstItemColumnSpanned(itemDevice, true); // Set text QString deviceText = QString("%1 (%2, %3)").arg(device.path, device.model, device.getFormattedSize()); if (device.unkownPartitionTable) deviceText += " - " + tr("unkown Partition Table"); itemDevice->setText(0, deviceText); // Set icon if (device.removable) itemDevice->setIcon(0, QIcon(":/images/resources/removabledisk.png")); else itemDevice->setIcon(0, QIcon(":/images/resources/disk.png")); // Partitions for (int x = 0; x < device.partitions.size(); x++) { MParted::Partition &partition = device.partitions[x]; QTreeWidgetItem *itemPartition = addPartitionItem(partition, itemDevice); // Logical partitions if present if (!partition.logicals.isEmpty()) { for (int x = 0; x < partition.logicals.size(); ++x) { addPartitionItem(partition.logicals[x], itemPartition); } } } // Set up itemDevice itemDevice->setFont(0, font); itemDevice->setSizeHint(0, QSize(0, 32)); itemDevice->setExpanded(true); itemDevice->setFlags(Qt::ItemIsEnabled); } // Be sure the tree widget list is filled already and that the scrollbar is visible already qApp->processEvents(); // Restore vertical scroll bar value scrollBar = ui->PartitionView->verticalScrollBar(); if (scrollBar && scrollYValue > 0) { if (scrollYValue > scrollBar->maximum()) scrollYValue = scrollBar->maximum(); scrollBar->setSliderPosition(scrollYValue); } }
void WidgetMain::initData() { //设置TreeWidget的font大小 { auto font = treeWidget->font(); font.setPixelSize(11); treeWidget->setFont(font); } pushButtonInfor->installEventFilter(this); pDustbin_ = new Label(this);//还可以用他的hover,通过eventfilter pDustbin_->hide(); pBackStart_ = new QLabel(this); pBackStart_->installEventFilter(this); QPixmap pix("./resource/images/bb/JumpToStart_idle.png"); pBackStart_->resize(pix.size()); pBackStart_->setPixmap(pix); { int y = widgetTitle->height()+widgetMenu->height()+10+255; pBackStart_->move(widgetLeft->width()+10, y); } //pBackStart_->setOpacity(0); pBackStart_->hide(); pSerialPortToolLabel_ = new FunctionAreaWidget(this); connect(pSerialPortToolLabel_, SIGNAL(signalClick()), this, SLOT(slotCreateSerialTool())); pSerialPortToolLabel_->addData(QPixmap("./resource/images/tool_area/TopToolBar_Serial.png"), "Serial"); pSerialPortToolLabel_->move(this->width()-200, 31); pSerialPortToolLabel_->show(); { QPixmap pix("./resource/images/tool_area/TopToolBar_del"); pDustbin_->resize(pix.size()); pDustbin_->setPixmap(pix); } labelLogo->installEventFilter(this); pDustbin_->installEventFilter(this); widgetLeft->installEventFilter(this); pAllBlockMenu_ = new QMenu(this); { // 啦拉拉在这里检测所有的模块 QString path = "./resource/Blocks"; QDir dir(path); dir.setFilter(QDir::AllDirs | QDir::NoDotAndDotDot); foreach (const QString &dirName, dir.entryList()) { //ListWidgetItem QString dirPath = path + "/" +dirName; QTreeWidgetItem *pTreeItem = new QTreeWidgetItem(treeWidget, QStringList(dirName)); pTreeItem->setSizeHint(0, QSize(100,20)); pTreeItem->setData(0,Qt::UserRole+1,dirPath); map_treeWidgetItemPointer_pageIndex_.insert(pTreeItem, pageIndex_++); //menu QMenu *pMenu = pAllBlockMenu_->addMenu(dirName); scanBlocks(dirPath, pTreeItem, pMenu); } { //treeWidget->setCurrentIndex(treeWidget->indexAt(QPoint(5, 5))); } } { QPixmap pixNormal("./resource/images/common/Blocks_Begin.png"); QPixmap pixHover("./resource/images/common/Blocks_Begin_p.png"); QPixmap pixPressed("./resource/images/common/Blocks_Begin_o.png"); pixNormal.scaled(QSize(26, 26)); pixHover.scaled(QSize(26, 26)); QListWidgetItem *pItem = new QListWidgetItem(""); pItem->setSizeHint(QSize(38, 38));//26*26 BlockMenuWidget *pWidget = new BlockMenuWidget(pixNormal, pixHover, pixPressed); listWidgetMenu->addItem(pItem); listWidgetMenu->setItemWidget(pItem, pWidget); } { QPixmap pixNormal("./resource/images/common/Blocks_All.png"); QPixmap pixHover("./resource/images/common/Blocks_All_p.png"); QPixmap pixPressed("./resource/images/common/Blocks_All_o.png"); pixNormal.scaled(QSize(26, 26)); pixHover.scaled(QSize(26, 26)); QListWidgetItem *pItem = new QListWidgetItem(""); pItem->setSizeHint(QSize(38, 38)); BlockMenuWidget *pWidget = new BlockMenuWidget(pixNormal, pixHover, pixPressed); listWidgetMenu->addItem(pItem); listWidgetMenu->setItemWidget(pItem, pWidget); } connect(listWidgetMenu, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this, SLOT(slotCurrentItemChanged(QListWidgetItem*,QListWidgetItem*))); pEditScene_ = new EditScene(QRectF(0, 0, 840, 640), widgetShowScene); pEditScene_->setWidgetMain(this); pEditScene_->setComponentData(&hash_blockPath_blockData_); pEditScene_->addModuleTagData(map_moduleName_moduleTag_); widgetShowScene->setScenePointer(pEditScene_ ); // pEditScene_->setListWidgetModulePointer(listWidget); connect(pEditScene_, SIGNAL(signalViewOffset(QPoint)), this, SLOT(slotViewOffset(QPoint))); connect(pEditScene_, SIGNAL(signalShowSubWindows()), this, SLOT(slotShowSubWindows())); connect(pEditScene_, SIGNAL(signalFocusInLine(FlowLine*,QString,QString)), this, SLOT(slotFocusInLine(FlowLine*,QString,QString))); connect(pEditScene_, SIGNAL(signalFocusInGroup(QString)), this, SLOT(slotFocusInGroup(QString))); connect(this, SIGNAL(signalCreateGroup(QString)), pEditScene_, SLOT(slotCreateGroup(QString))); createListWidget(); pListWidget_ = static_cast<ListWidgetAdvanceBlock*>(stackedWidgetBlockType->currentWidget()); QTimer::singleShot(50, this, SLOT(slotOpenAutoUpdate())); }
void DialogMsgManage::init() { setWindowFlags(Qt::Dialog | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint); setAttribute(Qt::WA_DeleteOnClose); //加载qss QFile file(":/qss/Dialog.qss"); if (!file.open(QIODevice::ReadOnly)) { qDebug() << file.errorString() << __FILE__ << __LINE__; } else { setStyleSheet(file.readAll()); } file.close(); connect(g_msgbox, SIGNAL(signMsgChanged(int,int,int)) , this, SLOT(slotProcessMsgChange(int,int,int)), Qt::QueuedConnection); ui->btnFirstPage->setEnabled(false); ui->btnPrevPage->setEnabled(false); ui->btnNextPage->setEnabled(false); ui->btnLastPage->setEnabled(false); m_valid.setRange(0, 0); ui->lineEditCurPage->setValidator(&m_valid); ui->lineEditCurPage->setText("0"); ui->lineEditCurPage->setAlignment(Qt::AlignCenter); ui->labelPageNum->setAlignment(Qt::AlignCenter); //信息列表菜单 m_actRead = new QAction(this); connect(m_actRead, SIGNAL(triggered()), this, SLOT(slotActionRead())); m_actStopRead = new QAction(this); connect(m_actStopRead, SIGNAL(triggered()), this, SLOT(slotActionStopRead())); m_actForwarding = new QAction(this); connect(m_actForwarding, SIGNAL(triggered()), this, SLOT(slotActionForwarding())); m_actReply = new QAction(this); connect(m_actReply, SIGNAL(triggered()), this, SLOT(slotActionReply())); // m_actMoveToInbox = new QAction(this); // connect(m_actMoveToInbox, SIGNAL(triggered()), this, SLOT(slotActionMoveToInbox())); // m_actMoveToOutbox = new QAction(this); // connect(m_actMoveToOutbox, SIGNAL(triggered()), this, SLOT(slotActionMoveToOutbox())); // m_actMoveToDraftbox = new QAction(this); // connect(m_actMoveToDraftbox, SIGNAL(triggered()), this, SLOT(slotActionMoveToDraftbox())); // m_actMoveToDustbin = new QAction(this); // connect(m_actMoveToDustbin, SIGNAL(triggered()), this, SLOT(slotActionMoveToDustbin())); m_actRestore = new QAction(this); connect(m_actRestore, SIGNAL(triggered()), this, SLOT(slotActionRestore())); m_actAddIntoPhoneBook = new QAction(this); connect(m_actAddIntoPhoneBook, SIGNAL(triggered()), this, SLOT(slotActionAddIntoPhoneBook())); m_actDelete = new QAction(this); connect(m_actDelete, SIGNAL(triggered()), this, SLOT(slotActionDelete())); m_menuMsgList = new QMenu(this); m_menuMsgList->addAction(m_actRead); m_menuMsgList->addAction(m_actStopRead); m_menuMsgList->addAction(m_actForwarding); m_menuMsgList->addAction(m_actReply); m_menuMsgList->addSeparator(); m_menuMsgList->addAction(m_actAddIntoPhoneBook); m_menuMsgList->addSeparator(); // m_menuMsgList->addAction(m_actMoveToInbox); // m_menuMsgList->addAction(m_actMoveToOutbox); // m_menuMsgList->addAction(m_actMoveToDraftbox); // m_menuMsgList->addAction(m_actMoveToDustbin); m_menuMsgList->addAction(m_actRestore); m_menuMsgList->addSeparator(); m_menuMsgList->addAction(m_actDelete); ui->listWidget->setContextMenuPolicy(Qt::CustomContextMenu); m_actSetAllRead = new QAction(this); connect(m_actSetAllRead, SIGNAL(triggered()), this, SLOT(slotActionSetAllRead())); m_actViewUnread = new QAction(this); connect(m_actViewUnread, SIGNAL(triggered()), this, SLOT(slotActionViewUnread())); m_actExport = new QAction(this); connect(m_actExport, SIGNAL(triggered()), this, SLOT(slotActionExport())); m_actDeleteAll = new QAction(this); connect(m_actDeleteAll, SIGNAL(triggered()), this, SLOT(slotActionDeleteAll())); m_actDeleteMoreSetting = new QAction(this); connect(m_actDeleteMoreSetting, SIGNAL(triggered()), this, SLOT(slotActionDeleteMoreSetting())); m_menuTree = new QMenu(this); m_menuTree->addAction(m_actViewUnread); m_menuTree->addAction(m_actSetAllRead); m_menuTree->addSeparator(); m_menuTree->addAction(m_actExport); m_menuTree->addSeparator(); m_menuTree->addAction(m_actDeleteAll); m_menuTree->addAction(m_actDeleteMoreSetting); ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu); ui->treeWidget->header()->hide(); m_msgBoxTopItem = new QTreeWidgetItem(ui->treeWidget); m_msgBoxTopItem->setSizeHint(0, QSize(0, cons_tree_item_height)); for (int i=0; i<=Message::Box_Dustbin; i++) { QTreeWidgetItem *twItem = new QTreeWidgetItem(m_msgBoxTopItem); twItem->setData(0, Qt::UserRole + DataIndex_Type, DataType_MessageBox); twItem->setData(0, Qt::UserRole + DataIndex_Value, i); twItem->setSizeHint(0, QSize(0, cons_tree_item_height)); m_msgBoxItems << twItem; } m_phoneBookItem = new QTreeWidgetItem(ui->treeWidget); m_phoneBookItem->setSizeHint(0, QSize(0, cons_tree_item_height)); for (int i=0; i<=Contact::Type_Stranger; i++) { QTreeWidgetItem *twItem = new QTreeWidgetItem(m_phoneBookItem); twItem->setSizeHint(0, QSize(0, cons_tree_item_height)); QList<Contact> contacts = g_phoneBook->getContactsOfType((Contact::Type)i); foreach (Contact contact, contacts) { QTreeWidgetItem *twItemT = new QTreeWidgetItem(twItem); twItemT->setText(0, QString("%1(%2)").arg(contact.name).arg(contact.phonenum)); twItemT->setData(0, Qt::UserRole + DataIndex_Type, DataType_PhoneBook); twItemT->setData(0, Qt::UserRole + DataIndex_Value, QVariant::fromValue<Contact>(contact)); twItemT->setSizeHint(0, QSize(0, cons_tree_item_height)); } m_contactTypeItems << twItem; }
void Wizard::checkMltComponents() { m_mltCheck.programList->setColumnCount(2); m_mltCheck.programList->setRootIsDecorated(false); m_mltCheck.programList->setHeaderHidden(true); QSize itemSize(20, fontMetrics().height() * 2.5); m_mltCheck.programList->setColumnWidth(0, 30); m_mltCheck.programList->setIconSize(QSize(24, 24)); QTreeWidgetItem *mltitem = new QTreeWidgetItem(m_mltCheck.programList); QTreeWidgetItem *meltitem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("Melt") + " (" + KdenliveSettings::rendererpath() + ')'); meltitem->setData(1, Qt::UserRole, i18n("Required for rendering (part of MLT package)")); meltitem->setSizeHint(0, itemSize); meltitem->setIcon(0, m_okIcon); // Check MLT's installed producers QProcess checkProcess; checkProcess.start(KdenliveSettings::rendererpath(), QStringList() << "-query" << "producer"); if (!checkProcess.waitForStarted()) { meltitem->setIcon(0, m_badIcon); meltitem->setData(1, Qt::UserRole, i18n("Error starting MLT's command line player (melt)")); button(QWizard::NextButton)->setEnabled(false); } else { checkProcess.waitForFinished(); QByteArray result = checkProcess.readAllStandardError(); // Check MLT avformat module QTreeWidgetItem *avformatItem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("Avformat module (FFmpeg)")); avformatItem->setData(1, Qt::UserRole, i18n("Required to work with various video formats (hdv, mpeg, flash, ...)")); avformatItem->setSizeHint(0, itemSize); if (!result.contains("- avformat")) { avformatItem->setIcon(0, m_badIcon); m_mltCheck.tabWidget->setTabEnabled(1, false); } else { avformatItem->setIcon(0, m_okIcon); // Make sure we have MLT > 0.3.4 bool recentMlt = false; int version = 0; QString mltVersion; QString exepath = KStandardDirs::findExe("pkg-config"); if (!exepath.isEmpty()) { checkProcess.start(exepath, QStringList() << "--variable=version" << "mlt++"); if (!checkProcess.waitForStarted()) { kDebug() << "// Error querying MLT's version"; } else { checkProcess.waitForFinished(); mltVersion = checkProcess.readAllStandardOutput(); version = 100 * mltVersion.section('.', 0, 0).toInt() + 10 * mltVersion.section('.', 1, 1).toInt() + mltVersion.section('.', 2, 2).toInt(); kDebug() << "// FOUND MLT's pkgconfig version: " << version; if (version > 34) recentMlt = true; } } if (version == 0) { checkProcess.start(KdenliveSettings::rendererpath(), QStringList() << "--version"); if (!checkProcess.waitForStarted()) { kDebug() << "// Error querying MLT's version"; } else { checkProcess.waitForFinished(); mltVersion = checkProcess.readAllStandardError(); mltVersion = mltVersion.section('\n', 0, 0).simplified(); mltVersion = mltVersion.section(' ', -1).simplified(); version = 100 * mltVersion.section('.', 0, 0).toInt() + 10 * mltVersion.section('.', 1, 1).toInt() + mltVersion.section('.', 2, 2).toInt(); kDebug() << "// FOUND MLT version: " << version; if (version >= 40) recentMlt = true; } } mltitem->setText(1, i18n("MLT version: %1", mltVersion.simplified())); mltitem->setSizeHint(0, itemSize); if (version < recommendedMltVersion) { mltitem->setData(1, Qt::UserRole, i18n("Please upgrade to the latest MLT version")); mltitem->setIcon(0, m_badIcon); } else { mltitem->setData(1, Qt::UserRole, i18n("MLT version is correct")); mltitem->setIcon(0, m_okIcon); } if (recentMlt) { // Check installed audio codecs QProcess checkProcess2; checkProcess2.start(KdenliveSettings::rendererpath(), QStringList() << "noise:" << "-consumer" << "avformat" << "acodec=list"); if (!checkProcess2.waitForStarted()) { m_mltCheck.tabWidget->setTabEnabled(1, false); kDebug() << "// Error parsing MLT's avformat codecs"; } else { checkProcess2.waitForFinished(); QByteArray codecList = checkProcess2.readAllStandardError(); QString acodecList(codecList); QStringList result; QStringList alist = acodecList.split('\n', QString::SkipEmptyParts); for (int i = 0; i < alist.count(); i++) { if (alist.at(i).contains("- ")) result.append(alist.at(i).section("- ", 1).simplified().toLower()); } m_mltCheck.acodecs_list->addItems(result); KdenliveSettings::setAudiocodecs(result); //kDebug()<<"// FOUND LIST:\n\n"<<m_audioCodecs<<"\n\n++++++++++++++++++++"; } // Check video codecs checkProcess2.start(KdenliveSettings::rendererpath(), QStringList() << "noise:" << "-consumer" << "avformat" << "vcodec=list"); if (!checkProcess2.waitForStarted()) { kDebug() << "// Error parsing MLT's avformat codecs"; } else { checkProcess2.waitForFinished(); QByteArray codecList = checkProcess2.readAllStandardError(); QString vcodecList(codecList); QStringList result; QStringList vlist = vcodecList.split('\n', QString::SkipEmptyParts); for (int i = 0; i < vlist.count(); i++) { if (vlist.at(i).contains("- ")) result.append(vlist.at(i).section("- ", 1).simplified().toLower()); } m_mltCheck.vcodecs_list->addItems(result); KdenliveSettings::setVideocodecs(result); //kDebug()<<"// FOUND LIST:\n\n"<<m_videoCodecs<<"\n\n++++++++++++++++++++"; } // Check formats checkProcess2.start(KdenliveSettings::rendererpath(), QStringList() << "noise:" << "-consumer" << "avformat" << "f=list"); if (!checkProcess2.waitForStarted()) { kDebug() << "// Error parsing MLT's avformat codecs"; } else { checkProcess2.waitForFinished(); QByteArray codecList = checkProcess2.readAllStandardError(); QString vcodecList(codecList); QStringList result; QStringList vlist = vcodecList.split('\n', QString::SkipEmptyParts); for (int i = 0; i < vlist.count(); i++) { if (vlist.at(i).contains("- ")) { QString format = vlist.at(i).section("- ", 1).simplified().toLower(); if (format.contains(',')) { QStringList sub = format.split(',', QString::SkipEmptyParts); for (int j = 0; j < sub.count(); j++) result.append(sub.at(j)); } else result.append(format); } } m_mltCheck.formats_list->addItems(result); KdenliveSettings::setSupportedformats(result); //kDebug()<<"// FOUND LIST:\n\n"<<m_videoCodecs<<"\n\n++++++++++++++++++++"; } } } // Check MLT dv module QTreeWidgetItem *dvItem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("DV module (libdv)")); dvItem->setData(1, Qt::UserRole, i18n("Required to work with dv files if avformat module is not installed")); dvItem->setSizeHint(0, itemSize); if (!result.contains("- libdv")) { dvItem->setIcon(0, m_badIcon); } else { dvItem->setIcon(0, m_okIcon); } // Check MLT image format module QTreeWidgetItem *imageItem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("QImage module")); imageItem->setData(1, Qt::UserRole, i18n("Required to work with images")); imageItem->setSizeHint(0, itemSize); if (!result.contains("- qimage")) { imageItem->setIcon(0, m_badIcon); imageItem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("Pixbuf module")); imageItem->setData(1, Qt::UserRole, i18n("Required to work with images")); imageItem->setSizeHint(0, itemSize); if (!result.contains("- pixbuf")) imageItem->setIcon(0, m_badIcon); else imageItem->setIcon(0, m_okIcon); } else { imageItem->setIcon(0, m_okIcon); } } }
void Wizard::slotCheckPrograms() { QSize itemSize(20, fontMetrics().height() * 2.5); m_check.programList->setColumnWidth(0, 30); m_check.programList->setIconSize(QSize(24, 24)); QTreeWidgetItem *item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("FFmpeg & ffplay")); item->setData(1, Qt::UserRole, i18n("Required for webcam capture")); item->setSizeHint(0, itemSize); QString exepath = KStandardDirs::findExe("ffmpeg"); if (exepath.isEmpty()) item->setIcon(0, m_badIcon); else if (KStandardDirs::findExe("ffplay").isEmpty()) item->setIcon(0, m_badIcon); else item->setIcon(0, m_okIcon); #ifndef Q_WS_MAC item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("recordmydesktop")); item->setData(1, Qt::UserRole, i18n("Required for screen capture")); item->setSizeHint(0, itemSize); if (KStandardDirs::findExe("recordmydesktop").isEmpty()) item->setIcon(0, m_badIcon); else item->setIcon(0, m_okIcon); item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("dvgrab")); item->setData(1, Qt::UserRole, i18n("Required for firewire capture")); item->setSizeHint(0, itemSize); if (KStandardDirs::findExe("dvgrab").isEmpty()) item->setIcon(0, m_badIcon); else item->setIcon(0, m_okIcon); #endif item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("dvdauthor")); item->setData(1, Qt::UserRole, i18n("Required for creation of DVD")); item->setSizeHint(0, itemSize); if (KStandardDirs::findExe("dvdauthor").isEmpty()) item->setIcon(0, m_badIcon); else item->setIcon(0, m_okIcon); item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("genisoimage or mkisofs")); item->setData(1, Qt::UserRole, i18n("Required for creation of DVD ISO images")); item->setSizeHint(0, itemSize); if (KStandardDirs::findExe("genisoimage").isEmpty()) { // no GenIso, check for mkisofs if (!KStandardDirs::findExe("mkisofs").isEmpty()) { item->setIcon(0, m_okIcon); } else item->setIcon(0, m_badIcon); } else item->setIcon(0, m_okIcon); item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("xine")); item->setData(1, Qt::UserRole, i18n("Required to preview your DVD")); item->setSizeHint(0, itemSize); if (KStandardDirs::findExe("xine").isEmpty()) item->setIcon(0, m_badIcon); else item->setIcon(0, m_okIcon); // set up some default applications QString program; if (KdenliveSettings::defaultimageapp().isEmpty()) { program = KStandardDirs::findExe("gimp"); if (program.isEmpty()) program = KStandardDirs::findExe("krita"); if (!program.isEmpty()) KdenliveSettings::setDefaultimageapp(program); } if (KdenliveSettings::defaultaudioapp().isEmpty()) { program = KStandardDirs::findExe("audacity"); if (program.isEmpty()) program = KStandardDirs::findExe("traverso"); if (!program.isEmpty()) KdenliveSettings::setDefaultaudioapp(program); } if (KdenliveSettings::defaultplayerapp().isEmpty()) { KService::Ptr offer = KMimeTypeTrader::self()->preferredService("video/mpeg"); if (offer) KdenliveSettings::setDefaultplayerapp(KRun::binaryName(offer->exec(), true)); } }