本文整理汇总了C++中KviPointerList::count方法的典型用法代码示例。如果您正苦于以下问题:C++ KviPointerList::count方法的具体用法?C++ KviPointerList::count怎么用?C++ KviPointerList::count使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KviPointerList
的用法示例。
在下文中一共展示了KviPointerList::count方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: deleteCurrent
void LogViewWindow::deleteCurrent()
{
LogListViewItem * pItem = (LogListViewItem *)(m_pListView->currentItem());
if(!pItem)
return;
if(!pItem->childCount())
{
if(!pItem->fileName().isNull())
{
if(QMessageBox::question(
this,
__tr2qs_ctx("Confirm Current User Log Deletion","log"),
__tr2qs_ctx("Do you really wish to delete this log?","log"),
__tr2qs("Yes"),__tr2qs("No"),0,1) != 0)
return;
KviFileUtils::removeFile(pItem->fileName());
delete pItem;
m_pIrcView->clearBuffer();
if(!pItem->parent()->childCount())
delete pItem->parent();
}
return;
}
if(QMessageBox::question(
this,
__tr2qs_ctx("Confirm Current User Logs Deletion","log"),
__tr2qs_ctx("Do you really wish to delete all these logs?","log"),
__tr2qs("Yes"),__tr2qs("No"),0,1) != 0)
return;
KviPointerList<LogListViewItem> itemsList;
itemsList.setAutoDelete(false);
for(int i=0; i < pItem->childCount(); i++)
{
if(!pItem->child(i)->childCount())
{
itemsList.append((LogListViewItem *)pItem->child(i));
continue;
}
LogListViewItem * pChild = (LogListViewItem *)pItem->child(i);
for(int j=0; j < pChild->childCount(); j++)
{
if(!(LogListViewItem *)pChild->child(j))
{
qDebug("Null pointer in logviewitem");
continue;
}
itemsList.append((LogListViewItem *)pChild->child(j));
}
}
for(unsigned int u=0; u < itemsList.count(); u++)
{
LogListViewItem * pCurItem = itemsList.at(u);
if(!pCurItem->fileName().isNull())
KviFileUtils::removeFile(pCurItem->fileName());
}
delete pItem;
}
示例2: exportLog
void LogViewWindow::exportLog(int iId)
{
LogListViewItem * pItem = (LogListViewItem *)(m_pListView->currentItem());
if(!pItem)
return;
if(!pItem->childCount())
{
// Export the log
createLog(pItem->log(), iId);
return;
}
// We selected a node in the log list, scan the children
KviPointerList<LogListViewItem> logList;
logList.setAutoDelete(false);
for(int i = 0; i < pItem->childCount(); i++)
{
if(!pItem->child(i)->childCount())
{
// The child is a log file, append it to the list
logList.append((LogListViewItem *)pItem->child(i));
continue;
}
// The child is a node, scan it
LogListViewItem * pChild = (LogListViewItem *)pItem->child(i);
for(int j=0; j < pChild->childCount(); j++)
{
if(!(LogListViewItem *)pChild->child(j))
{
qDebug("Null pointer in logviewitem");
continue;
}
// Add the child to the list
logList.append((LogListViewItem *)pChild->child(j));
}
}
// Scan the list
for(unsigned int u = 0; u < logList.count(); u++)
{
LogListViewItem * pCurItem = logList.at(u);
createLog(pCurItem->log(), iId);
}
}
示例3: packageThemes
bool packageThemes(
const QString &szPackagePath,
const QString &szPackageName,
const QString &szPackageVersion,
const QString &szPackageDescription,
const QString &szPackageAuthor,
const QString &szPackageImagePath,
KviPointerList<KviThemeInfo> &lThemeInfoList,
QString &szError
)
{
if(szPackagePath.isEmpty())
{
szError = __tr2qs_ctx("Invalid empty package path","theme");
return false;
}
if(szPackageName.isEmpty())
{
szError = __tr2qs_ctx("Invalid empty package name","theme");
return false;
}
QPixmap out;
if(!szPackageImagePath.isEmpty())
{
QImage pix(szPackageImagePath);
if(pix.isNull())
{
szError = __tr2qs_ctx("Failed to load the selected image: please fix it","theme");
return false;
}
if((pix.width() > 300) || (pix.height() > 225))
out = out.fromImage(pix.scaled(300,225,Qt::KeepAspectRatio));
else
out=out.fromImage(pix);
}
KviPackageWriter f;
f.addInfoField("PackageType","ThemePack");
f.addInfoField("ThemePackVersion",KVI_CURRENT_THEME_ENGINE_VERSION);
f.addInfoField("Name",szPackageName);
f.addInfoField("Version",szPackageVersion.isEmpty() ? "1.0.0" : szPackageVersion);
f.addInfoField("Author",szPackageAuthor);
f.addInfoField("Description",szPackageDescription);
// this is the equivalent to an empty date.toString() call, but it's needed
// to ensure qt4 will use the default() locale and not the system() one
f.addInfoField("Date",QDateTime::currentDateTime().toString(Qt::ISODate));
f.addInfoField("Application","KVIrc " KVI_VERSION "." KVI_SOURCES_DATE);
if(!out.isNull())
{
QByteArray * pba = new QByteArray();
QBuffer buffer(pba,0);
buffer.open(QIODevice::WriteOnly);
out.save(&buffer,"PNG");
buffer.close();
f.addInfoField("Image",pba); // cool :) [no disk access needed]
}
QString szTmp;
szTmp.setNum(lThemeInfoList.count());
f.addInfoField("ThemeCount",szTmp);
int iIdx = 0;
for(KviThemeInfo * pInfo = lThemeInfoList.first();pInfo;pInfo = lThemeInfoList.next())
{
if(pInfo->name().isEmpty())
{
szError = __tr2qs_ctx("Invalid theme name","theme");
return false;
}
if(pInfo->version().isEmpty())
{
szError = __tr2qs_ctx("Invalid theme version","theme");
return false;
}
QString szSubdir = pInfo->name() + QString("-") + pInfo->version();
szSubdir.replace(QRegExp("[^a-zA-Z0-9_\\-.][^a-zA-Z0-9_\\-.]*"),"_");
szTmp = QString("Theme%1Name").arg(iIdx);
f.addInfoField(szTmp,pInfo->name());
szTmp = QString("Theme%1Version").arg(iIdx);
f.addInfoField(szTmp,pInfo->version());
szTmp = QString("Theme%1Description").arg(iIdx);
f.addInfoField(szTmp,pInfo->description());
szTmp = QString("Theme%1Date").arg(iIdx);
f.addInfoField(szTmp,pInfo->date());
szTmp = QString("Theme%1Subdirectory").arg(iIdx);
f.addInfoField(szTmp,szSubdir);
szTmp = QString("Theme%1Author").arg(iIdx);
f.addInfoField(szTmp,pInfo->author());
szTmp = QString("Theme%1Application").arg(iIdx);
f.addInfoField(szTmp,pInfo->application());
szTmp = QString("Theme%1ThemeEngineVersion").arg(iIdx);
//.........这里部分代码省略.........
示例4: cleanup
void KviAvatarCache::cleanup()
{
// first do a quick run deleting the avatars really too old
KviPointerHashTableIterator<QString,KviAvatarCacheEntry> it(*m_pAvatarDict);
kvi_time_t tNow = kvi_unixTime();
KviPointerList<QString> l;
l.setAutoDelete(false);
KviAvatarCacheEntry * e;
while((e = it.current()))
{
if((tNow - e->tLastAccess) > MAX_UNACCESSED_TIME)
{
l.append(new QString(it.currentKey()));
}
++it;
}
for(QString *s = l.first();s;s = l.next())m_pAvatarDict->remove(*s);
if(m_pAvatarDict->count() < CACHE_GUARD_LEVEL)return;
// not done.. need to kill the last accessed :/
it.toFirst();
KviPointerList<KviAvatarCacheEntry> ll;
ll.setAutoDelete(true);
// here we use the cache entries in another way
// szAvatar is the KEY instead of the avatar name
while((e = it.current()))
{
KviAvatarCacheEntry * current = ll.first();
unsigned int idx = 0;
while(current)
{
// if the current is newer than the inserted one
// then stop searching and insert it just before
if(current->tLastAccess > e->tLastAccess)break;
// otherwise the current is older and the inserted
// one goes after
current = ll.next();
idx++;
}
KviAvatarCacheEntry * xx = new KviAvatarCacheEntry;
xx->szIdString = it.currentKey();
xx->tLastAccess = e->tLastAccess;
if(current)ll.insert(idx,xx);
else ll.append(xx);
++it;
}
// the oldest keys are at the beginning
int uRemove = ll.count() - CACHE_GUARD_LEVEL;
if(uRemove < 1)return; // huh ?
// remember that szAvatar contains the key!
for(e = ll.first();e && (uRemove > 0);e = ll.next())
{
m_pAvatarDict->remove(e->szIdString);
uRemove--;
}
// now we should be ok
}