Skip to content

Commit

Permalink
Have the lumina-fm "browserWidget" show the "name" property of XDG de…
Browse files Browse the repository at this point in the history
…sktop entries rather than the filename.
  • Loading branch information
beanpole135 committed Jun 30, 2017
1 parent 6990601 commit 641b03f
Showing 1 changed file with 53 additions and 17 deletions.
70 changes: 53 additions & 17 deletions src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -275,27 +275,63 @@ void BrowserWidget::itemDataAvailable(QIcon ico, LFileInfo *info){
int num = 0;
if(listWidget!=0){
//LIST WIDGET - name and icon only
if(!listWidget->findItems(info->fileName(), Qt::MatchExactly).isEmpty()){
//Update existing item
QListWidgetItem *it = listWidget->findItems(info->fileName(), Qt::MatchExactly).first();
it->setText(info->fileName());
it->setWhatsThis(info->absoluteFilePath());
it->setIcon(ico);
if(info->isDesktopFile()){
QList<QListWidgetItem*> items = listWidget->findItems(info->XDG()->name, Qt::MatchExactly);
//Could be multiple items with the same text in this case - check paths as well
bool found = false;
for(int i=0; i<items.length() && !found; i++){
if(items[i]->whatsThis()==info->absoluteFilePath()){
found = true;
items[i]->setText(info->XDG()->name);
items[i]->setIcon(ico);
}
}
if(!found){
//New Item
QListWidgetItem *it = new CQListWidgetItem(ico, info->XDG()->name, listWidget);
it->setWhatsThis(info->absoluteFilePath());
it->setData(Qt::UserRole, (info->isDir() ? "dir" : "file")); //used for sorting
listWidget->addItem(it);
}
}else{
//New item
QListWidgetItem *it = new CQListWidgetItem(ico, info->fileName(), listWidget);
//non-desktop entry
if(!listWidget->findItems(info->fileName(), Qt::MatchExactly).isEmpty()){
//Update existing item
QListWidgetItem *it = listWidget->findItems(info->fileName(), Qt::MatchExactly).first();
it->setText(info->fileName());
it->setWhatsThis(info->absoluteFilePath());
it->setData(Qt::UserRole, (info->isDir() ? "dir" : "file")); //used for sorting
listWidget->addItem(it);
}
num = listWidget->count();
it->setIcon(ico);

}else{
//New item
QListWidgetItem *it = new CQListWidgetItem(ico, info->fileName(), listWidget);
it->setWhatsThis(info->absoluteFilePath());
it->setData(Qt::UserRole, (info->isDir() ? "dir" : "file")); //used for sorting
listWidget->addItem(it);
}
num = listWidget->count();
} //end non-desktop entry
}else if(treeWidget!=0){
QTreeWidgetItem *it = 0;
if( ! treeWidget->findItems(info->fileName(), Qt::MatchExactly, 0).isEmpty() ){ it = treeWidget->findItems(info->fileName(), Qt::MatchExactly, 0).first(); }
else{
it = new CQTreeWidgetItem(treeWidget);
it->setText(0, info->fileName() ); //name (0)
treeWidget->addTopLevelItem(it);
if(info->isDesktopFile()){
QList<QTreeWidgetItem*> items = treeWidget->findItems(info->XDG()->name, Qt::MatchExactly, 0);
for(int i=0; i<items.length() && it==0; i++){
//Can be multiple with the same name - check paths too
if(items[i]->whatsThis(0)==info->absoluteFilePath()){ it = items[i]; }
}
if(it==0){
//New item
it = new CQTreeWidgetItem(treeWidget);
it->setText(0, info->XDG()->name ); //name (0)
treeWidget->addTopLevelItem(it);
}
}else{
if( ! treeWidget->findItems(info->fileName(), Qt::MatchExactly, 0).isEmpty() ){ it = treeWidget->findItems(info->fileName(), Qt::MatchExactly, 0).first(); }
else{
it = new CQTreeWidgetItem(treeWidget);
it->setText(0, info->fileName() ); //name (0)
treeWidget->addTopLevelItem(it);
}
}
//Now set/update all the data
it->setIcon(0, ico);
Expand Down

0 comments on commit 641b03f

Please sign in to comment.