X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/c1af91aab193cf34b36bfacd39805eeaa48e19b1..dc3e19744dedef4b185eb0becb00a28c74381c4c:/src/urlnavigatorbutton.cpp diff --git a/src/urlnavigatorbutton.cpp b/src/urlnavigatorbutton.cpp index f9c5b407b..9fe2186da 100644 --- a/src/urlnavigatorbutton.cpp +++ b/src/urlnavigatorbutton.cpp @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ #include "urlnavigatorbutton.h" @@ -40,7 +40,7 @@ #include "urlnavigator.h" #include "dolphinview.h" -#include "dolphin.h" +#include "dolphinmainwindow.h" UrlNavigatorButton::UrlNavigatorButton(int index, UrlNavigator* parent) : UrlButton(parent), @@ -98,6 +98,7 @@ QSize UrlNavigatorButton::sizeHint() const void UrlNavigatorButton::paintEvent(QPaintEvent* event) { QPainter painter(this); + painter.setClipRect(event->rect()); const int buttonWidth = width(); const int buttonHeight = height(); @@ -111,17 +112,17 @@ void UrlNavigatorButton::paintEvent(QPaintEvent* event) foregroundColor = KGlobalSettings::highlightedTextColor(); } else { - backgroundColor = colorGroup().background(); + backgroundColor = palette().brush(QPalette::Background).color(); foregroundColor = KGlobalSettings::buttonTextColor(); } // dimm the colors if the parent view does not have the focus const DolphinView* parentView = urlNavigator()->dolphinView(); - const Dolphin& dolphin = Dolphin::mainWin(); + const DolphinMainWindow* dolphin = parentView->mainWindow(); - const bool isActive = (dolphin.activeView() == parentView); + const bool isActive = (dolphin->activeView() == parentView); if (!isActive) { - QColor dimmColor(colorGroup().background()); + QColor dimmColor(palette().brush(QPalette::Background).color()); foregroundColor = mixColors(foregroundColor, dimmColor); if (isHighlighted) { backgroundColor = mixColors(backgroundColor, dimmColor); @@ -192,14 +193,14 @@ void UrlNavigatorButton::enterEvent(QEvent* event) // if the text is clipped due to a small window width, the text should // be shown as tooltip if (isTextClipped()) { - QToolTip::add(this, text()); + setToolTip(text()); } } void UrlNavigatorButton::leaveEvent(QEvent* event) { UrlButton::leaveEvent(event); - QToolTip::remove(this); + setToolTip(QString()); } void UrlNavigatorButton::dropEvent(QDropEvent* event) @@ -208,28 +209,31 @@ void UrlNavigatorButton::dropEvent(QDropEvent* event) return; } - KUrl::List urls; - /* KDE4-TODO: - if (KUrlDrag::decode(event, urls) && !urls.isEmpty()) { + const KUrl::List urls = KUrl::List::fromMimeData(event->mimeData()); + if (!urls.isEmpty()) { + event->acceptProposedAction(); + setDisplayHintEnabled(DraggedHint, true); QString path(urlNavigator()->url().prettyUrl()); - path = path.section('/', 0, m_index); + path = path.section('/', 0, m_index + 2); - Dolphin::mainWin().dropUrls(urls, KUrl(path)); + DolphinMainWindow* win = urlNavigator()->dolphinView()->mainWindow(); + win->dropUrls(urls, KUrl(path)); setDisplayHintEnabled(DraggedHint, false); update(); - }*/ + } } void UrlNavigatorButton::dragEnterEvent(QDragEnterEvent* event) { - /* KDE4-TODO: - event->accept(KUrlDrag::canDecode(event)); + if (event->mimeData()->hasUrls()) { + setDisplayHintEnabled(DraggedHint, true); + event->acceptProposedAction(); - setDisplayHintEnabled(DraggedHint, true);*/ - update(); + update(); + } } void UrlNavigatorButton::dragLeaveEvent(QDragLeaveEvent* event) @@ -258,7 +262,8 @@ void UrlNavigatorButton::startPopupDelay() return; } - m_popupDelay->start(300, true); + m_popupDelay->setSingleShot(true); + m_popupDelay->start(300); } void UrlNavigatorButton::stopPopupDelay() @@ -344,14 +349,14 @@ void UrlNavigatorButton::listJobFinished(KJob* job) setDisplayHintEnabled(PopupActiveHint, true); update(); // ensure the button is drawn highlighted Q3PopupMenu* dirsMenu = new Q3PopupMenu(this); - //setPopup(dirsMenu); + //setMenu(dirsMenu); QStringList::const_iterator it = m_subdirs.constBegin(); QStringList::const_iterator itEnd = m_subdirs.constEnd(); int i = 0; while (it != itEnd) { dirsMenu->insertItem(*it, i); - ++i; ++it; + ++i; } int result = dirsMenu->exec(urlNavigator()->mapToGlobal(geometry().bottomLeft()));