[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/apps/plasma/applets/folderview
From: Aaron J. Seigo <aseigo () kde ! org>
Date: 2010-07-26 20:29:25
Message-ID: 20100726202925.E2917AC779 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1155060 by aseigo:
patch by Iamluc to show when a folder is empty; maintainer said he considers this a \
bugfix. certainly a ++elegance.
M +30 -10 iconview.cpp
M +1 -0 iconview.h
--- trunk/KDE/kdebase/apps/plasma/applets/folderview/iconview.cpp #1155059:1155060
@@ -83,6 +83,7 @@
m_alignToGrid(false),
m_wordWrap(false),
m_popupShowPreview(true),
+ m_folderIsEmpty(false),
m_flow(layoutDirection() == Qt::LeftToRight ? LeftToRight : RightToLeft),
m_popupCausedWidget(0),
m_dropOperation(0),
@@ -91,9 +92,6 @@
{
m_actionOverlay = new ActionOverlay(this);
- // Added for later use
- Q_UNUSED(I18N_NOOP("This folder is empty."))
-
setAcceptHoverEvents(true);
setAcceptDrops(true);
setCacheMode(NoCache);
@@ -483,8 +481,9 @@
Q_UNUSED(url)
// Reset any error message that may have resulted from an earlier listing
- if (!m_errorMessage.isEmpty()) {
+ if (!m_errorMessage.isEmpty() || m_folderIsEmpty) {
m_errorMessage.clear();
+ m_folderIsEmpty = false;
update();
}
@@ -505,7 +504,15 @@
if (m_validRows == m_model->rowCount()) {
emit busy(false);
}
+
+ if (!m_model->rowCount() && !m_folderIsEmpty) {
+ m_folderIsEmpty = true;
+ update();
+ } else if (m_model->rowCount() && m_folderIsEmpty) {
+ m_folderIsEmpty = false;
+ update();
}
+}
void IconView::listingCanceled()
{
@@ -534,7 +541,11 @@
const QString path = m_dirModel->dirLister()->url().toLocalFile();
listingError(KIO::buildErrorString(KIO::ERR_DOES_NOT_EXIST, path));
}
+
+ if (!m_model->rowCount()) {
+ m_folderIsEmpty = true;
}
+}
int IconView::columnsForWidth(qreal width) const
{
@@ -1227,8 +1238,13 @@
if (!m_errorMessage.isEmpty()) {
paintMessage(painter, cr, m_errorMessage, KIcon("dialog-error"));
+ } else if (m_folderIsEmpty) {
+ Plasma::Containment *containment = \
qobject_cast<Plasma::Containment*>(parentWidget()); + if (!containment || \
!containment->isContainment()) { + paintMessage(painter, cr, i18n( "This \
folder is empty." ), KIcon() ); }
}
+}
bool IconView::indexIntersectsRect(const QModelIndex &index, const QRect &rect) \
const {
@@ -1614,26 +1630,29 @@
void IconView::keyPressEvent(QKeyEvent *event)
{
- if (m_columns == 0) //The layout isn't done until items are actually \
inserted into the model, so until that happens, m_columns will be 0 + if \
(m_columns == 0) { + //The layout isn't done until items are actually \
inserted into the model, so until that happens, m_columns will be 0 return;
+ }
int hdirection = 0;
int vdirection = 0;
QModelIndex currentIndex = m_selectionModel->currentIndex();
+ if (!event->text().isEmpty()) {
bool sameKeyWasPressed = m_searchQuery.endsWith(event->text());
m_searchQuery.append(event->text());
- m_searchQueryTimer.start(2000, this); //clears search query when the user \
doesn't press any key + m_searchQueryTimer.start(1500, this); //clears \
search query when the user doesn't press any key
// First try to match the exact icon string
- QModelIndexList matches = m_model->match(currentIndex, Qt::DisplayRole, \
m_searchQuery,
- 1, Qt::MatchFixedString | \
Qt::MatchWrap); + QModelIndexList matches = m_model->match(currentIndex, \
Qt::DisplayRole, m_searchQuery, 1, + \
Qt::MatchFixedString | Qt::MatchWrap);
if (matches.count()<=0) {
// Exact match failed, try matching the beginning of the icon string
- matches = m_model->match(currentIndex, Qt::DisplayRole, m_searchQuery,
- 1, Qt::MatchStartsWith | \
Qt::MatchWrap); + matches = m_model->match(currentIndex, Qt::DisplayRole, \
m_searchQuery, 1, + Qt::MatchStartsWith | \
Qt::MatchWrap);
if (matches.count()<=0 && sameKeyWasPressed) {
// Didn't even match beginning, try next icon string starting with the \
same letter @@ -1645,6 +1664,7 @@
if (matches.count()>0) {
selectIcon(matches.at(0));
}
+ }
switch (event->key()) {
case Qt::Key_Home:
--- trunk/KDE/kdebase/apps/plasma/applets/folderview/iconview.h #1155059:1155060
@@ -236,6 +236,7 @@
bool m_alignToGrid;
bool m_wordWrap;
bool m_popupShowPreview;
+ bool m_folderIsEmpty;
QPersistentModelIndex m_hoveredIndex;
QPersistentModelIndex m_pressedIndex;
QPersistentModelIndex m_editorIndex;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic