X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/00b23eaa5233666bf7fa04800ae365234b50aed4..85bc196887fbed01187e3830cd28c2500cb01cb2:/src/urlnavigatorbutton.cpp diff --git a/src/urlnavigatorbutton.cpp b/src/urlnavigatorbutton.cpp index 3be037ced..2925ed350 100644 --- a/src/urlnavigatorbutton.cpp +++ b/src/urlnavigatorbutton.cpp @@ -152,27 +152,19 @@ void UrlNavigatorButton::paintEvent(QPaintEvent* event) const bool clipped = isTextClipped(); const int align = clipped ? Qt::AlignVCenter : Qt::AlignCenter; - painter.drawText(QRect(0, 0, textWidth, buttonHeight), align, text()); - + const QRect textRect(0, 0, textWidth, buttonHeight); if (clipped) { - // Blend the right area of the text with the background, as the - // text is clipped. - // TODO: use alpha blending in Qt4 instead of drawing the text that often - const int blendSteps = 16; - - QColor blendColor(backgroundColor); - const int redInc = (foregroundColor.red() - backgroundColor.red()) / blendSteps; - const int greenInc = (foregroundColor.green() - backgroundColor.green()) / blendSteps; - const int blueInc = (foregroundColor.blue() - backgroundColor.blue()) / blendSteps; - for (int i = 0; i < blendSteps; ++i) { - painter.setClipRect(QRect(textWidth - i, 0, 1, buttonHeight)); - painter.setPen(blendColor); - painter.drawText(QRect(0, 0, textWidth, buttonHeight), align, text()); - - blendColor.setRgb(blendColor.red() + redInc, - blendColor.green() + greenInc, - blendColor.blue() + blueInc); - } + QLinearGradient gradient(textRect.topLeft(), textRect.topRight()); + gradient.setColorAt(0.8, foregroundColor); + gradient.setColorAt(1.0, backgroundColor); + + QPen pen; + pen.setBrush(QBrush(gradient)); + painter.setPen(pen); + painter.drawText(textRect, align, text()); + } + else { + painter.drawText(textRect, align, text()); } } @@ -270,7 +262,7 @@ void UrlNavigatorButton::startListJob() } const KUrl& url = urlNavigator()->url(m_index); - m_listJob = KIO::listDir(url, false, false); + m_listJob = KIO::listDir(url, false, urlNavigator()->showHiddenFiles()); m_subdirs.clear(); // just to be ++safe connect(m_listJob, SIGNAL(entries(KIO::Job*, const KIO::UDSEntryList &)), @@ -286,35 +278,16 @@ void UrlNavigatorButton::entriesList(KIO::Job* job, const KIO::UDSEntryList& ent KIO::UDSEntryList::const_iterator it = entries.constBegin(); KIO::UDSEntryList::const_iterator itEnd = entries.constEnd(); - while (it != itEnd) { - QString name; - //bool isDir = false; - KIO::UDSEntry entry = *it; - - /* KDE3 reference: - KIO::UDSEntry::const_iterator atomIt = entry.constBegin(); - KIO::UDSEntry::const_iterator atomEndIt = entry.constEnd(); - - while (atomIt != atomEndIt) { - switch ((*atomIt).m_uds) { - case KIO::UDS_NAME: - name = (*atomIt).m_str; - break; - case KIO::UDS_FILE_TYPE: - isDir = S_ISDIR((*atomIt).m_long); - break; - default: - break; - } - ++atomIt; - } - if (isDir) { - m_subdirs.append(name); - } - */ + bool showHidden = urlNavigator()->showHiddenFiles(); + while (it != itEnd) { + const KIO::UDSEntry entry = *it; if (entry.isDir()) { - m_subdirs.append(entry.stringValue(KIO::UDS_NAME)); + QString name = entry.stringValue(KIO::UDS_NAME); + + if (!showHidden || (name != "." && name != "..")) { + m_subdirs.append(name); + } } ++it;