23 #include <QtCore/QDateTime>
41 : m_manager(manager), m_lister(0), m_folderIsEmpty(true), m_isCdrom(false),
42 m_isAccessible(false), m_device(udi)
46 if (udi.isEmpty() && m_bookmark.
metaDataItem(
"ID").isEmpty()) {
48 }
else if (udi.isEmpty()) {
49 if (hasFullIcon(m_bookmark)) {
54 connect(m_lister, SIGNAL(completed()),
55 this, SLOT(onListerCompleted()));
58 }
else if (!udi.isEmpty() && m_device.
isValid()) {
64 connect(m_access, SIGNAL(accessibilityChanged(
bool,
QString)),
65 this, SLOT(onAccessibilityChanged(
bool)));
66 onAccessibilityChanged(m_access->isAccessible());
68 m_iconPath = m_device.
icon();
106 m_text =
i18nc(
"KFile System Bookmarks", bookmark.
text().toUtf8().data());
108 m_text = bookmark.
text();
114 if (m_device.
udi().isEmpty()) {
136 returnData = deviceData(role);
138 returnData = bookmarkData(role);
144 QVariant KFilePlacesItem::bookmarkData(
int role)
const
152 case Qt::DisplayRole:
154 case Qt::DecorationRole:
155 return KIcon(iconNameForBookmark(b));
156 case Qt::BackgroundRole:
158 return Qt::lightGray;
173 QVariant KFilePlacesItem::deviceData(
int role)
const
180 case Qt::DisplayRole:
182 case Qt::DecorationRole:
183 return KIcon(m_iconPath, 0, m_emblems);
186 return QUrl(
KUrl(m_access->filePath()));
191 return QUrl(
QString(
"audiocd:/?device=%1").arg(device));
204 return !m_isAccessible;
213 while (parentDevice.
isValid() && !drive) {
215 parentDevice = parentDevice.parent();
218 return !drive->isHotpluggable() && !drive->isRemovable();
224 return m_isAccessible && !m_isCdrom;
244 if (url==
KUrl(
"trash:/")) {
245 if (empty_icon.endsWith(QLatin1String(
"-full"))) {
247 }
else if (empty_icon.isEmpty()) {
248 empty_icon =
"user-trash";
262 const QString &untranslatedLabel,
263 const QString &translatedLabel,
267 Q_UNUSED(translatedLabel);
289 QString KFilePlacesItem::generateNewId()
291 static int count = 0;
295 return QString::number(QDateTime::currentDateTime().toTime_t())
296 +
'/' + QString::number(count++);
303 void KFilePlacesItem::onAccessibilityChanged(
bool isAccessible)
305 m_isAccessible = isAccessible;
307 m_emblems = m_device.
emblems();
312 bool KFilePlacesItem::hasFullIcon(
const KBookmark &bookmark)
const
314 return bookmark.
url()==
KUrl(
"trash:/");
317 QString KFilePlacesItem::iconNameForBookmark(
const KBookmark &bookmark)
const
319 if (!m_folderIsEmpty && hasFullIcon(bookmark)) {
320 return bookmark.
icon()+
"-full";
322 return bookmark.
icon();
326 void KFilePlacesItem::onListerCompleted()
328 m_folderIsEmpty = m_lister->
items().isEmpty();
332 #include "kfileplacesitem_p.moc"