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()));
189 return QUrl(
QString(
"audiocd:/?device=%1").arg(device));
197 return !m_isAccessible;
206 while (parentDevice.
isValid() && !drive) {
208 parentDevice = parentDevice.parent();
217 return m_isAccessible && !m_isCdrom;
237 if (url==
KUrl(
"trash:/")) {
238 if (empty_icon.endsWith(QLatin1String(
"-full"))) {
240 }
else if (empty_icon.isEmpty()) {
241 empty_icon =
"user-trash";
255 const QString &untranslatedLabel,
256 const QString &translatedLabel,
260 Q_UNUSED(translatedLabel);
282 QString KFilePlacesItem::generateNewId()
284 static int count = 0;
288 return QString::number(QDateTime::currentDateTime().toTime_t())
289 +
'/' + QString::number(count++);
296 void KFilePlacesItem::onAccessibilityChanged(
bool isAccessible)
298 m_isAccessible = isAccessible;
300 m_emblems = m_device.
emblems();
305 bool KFilePlacesItem::hasFullIcon(
const KBookmark &bookmark)
const
307 return bookmark.
url()==
KUrl(
"trash:/");
310 QString KFilePlacesItem::iconNameForBookmark(
const KBookmark &bookmark)
const
312 if (!m_folderIsEmpty && hasFullIcon(bookmark)) {
313 return bookmark.
icon()+
"-full";
315 return bookmark.
icon();
319 void KFilePlacesItem::onListerCompleted()
321 m_folderIsEmpty = m_lister->
items().isEmpty();
325 #include "kfileplacesitem_p.moc"