Fix new favotite folder emblem icons wrong issue, link to bug#118015.

This commit is contained in:
hemh 2022-06-01 13:52:57 +08:00 committed by Yue-Lan
parent 20cc26d60a
commit 8b06c73373
3 changed files with 24 additions and 22 deletions

View File

@ -208,20 +208,18 @@ void IconViewDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
return;
}
auto info = item->info();
if(info->uri().startsWith("favorite://")){/* 快速访问须特殊处理 */
info = FileInfo::fromUri(FileUtils::getEncodedUri(FileUtils::getTargetUri(info->uri())));
}
//fix file emblemed icon not correct issue, link to bug#118015
if (info->isEmptyInfo()) {
FileInfoJob j(info);
j.querySync();
}
// draw color symbols
int iLine = 0;
int yoffset = 0;
auto colors = info->getColors();
if (!isDragging || !view->selectedIndexes().contains(index)) {
auto colors = info->getColors();
//快速访问目录,颜色标记设置后更新不及时问题单独处理,修复bug#118015
if(info->uri().startsWith("favorite://")){/* 快速访问须特殊处理 */
auto matchInfo = FileInfo::fromUri(FileUtils::getEncodedUri(FileUtils::getTargetUri(info->uri())));
colors = matchInfo->getColors();
}
if(0 < colors.count())
{
const int MAX_LABEL_NUM = 3;

View File

@ -209,15 +209,18 @@ void IconViewIndexWidget::paintEvent(QPaintEvent *e)
//extra emblems
auto info = m_info.lock();
// draw color symbols
if(info->uri().startsWith("favorite://")){/* 快速访问须特殊处理 */
info = FileInfo::fromUri(FileUtils::getEncodedUri(FileUtils::getTargetUri(info->uri())));
}
auto colors = info->getColors();
auto lineSpacing = opt.fontMetrics.lineSpacing();
int yoffset = 0;
int iLine = 0;
// draw color symbols
if(info->uri().startsWith("favorite://")){/* 快速访问须特殊处理 */
//快速访问目录,颜色标记设置后更新不及时问题单独处理,修复bug#118015
auto matchInfo = FileInfo::fromUri(FileUtils::getEncodedUri(FileUtils::getTargetUri(info->uri())));
colors = matchInfo->getColors();
}
if(0 < colors.count())
{
const int MAX_LABEL_NUM = 3;

View File

@ -69,15 +69,16 @@ void ListViewDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
auto view = qobject_cast<DirectoryView::ListView *>(parent());
/* 此处以中文命名的文件保护箱标记实时同步还存在问题是由于uri编码尽管使用FileUtils::urlEncoded进行转换与底层(info的uri)不匹配 */
QString uri = index.data(Qt::UserRole).toString();
if(uri.startsWith("favorite://"))/* 快速访问须特殊处理 */
uri =FileUtils::getEncodedUri(FileUtils::getTargetUri(uri));
auto info = FileInfo::fromUri(uri);
//fix file emblemed icon not correct issue, link to bug#118015
if (info->isEmptyInfo()) {
FileInfoJob j(info);
j.querySync();
}
auto colors = info->getColors();
if(uri.startsWith("favorite://")){/* 快速访问须特殊处理 */
//快速访问目录,颜色标记设置后更新不及时问题单独处理,修复bug#118015
uri =FileUtils::getEncodedUri(FileUtils::getTargetUri(uri));
auto matchInfo = FileInfo::fromUri(uri);
colors = matchInfo->getColors();
}
if (index.column() == 0 && colors.count() >0) {
if (!view->isDragging() || !view->selectionModel()->selectedIndexes().contains(index)) {
int xoffset = 5;