#include <QLabel>
#include <QLineEdit>
#include <QMouseEvent>
-#include <QPushButton>
+#include <QToolButton>
UrlNavigator::HistoryElem::HistoryElem() :
m_url(),
QWidget* parent) :
QWidget(parent),
m_active(true),
+ m_showHiddenFiles(false),
m_historyIndex(0),
m_layout(0),
m_protocols(0),
// intialize toggle button which switches between the breadcrumb view
// and the traditional view
- m_toggleButton = new QPushButton();
+ m_toggleButton = new QToolButton();
m_toggleButton->setCheckable(true);
- m_toggleButton->setFlat(true);
- m_toggleButton->setIcon(KIcon("locationbar_erase")); // TODO: is just a placeholder icon
+ m_toggleButton->setAutoRaise(true);
+ m_toggleButton->setIcon(KIcon("editinput")); // TODO: is just a placeholder icon (?)
m_toggleButton->setFocusPolicy(Qt::NoFocus);
m_toggleButton->setMinimumHeight(minimumHeight());
connect(m_toggleButton, SIGNAL(clicked()),
KUrl UrlNavigator::url(int index) const
{
assert(index >= 0);
- QString path(url().pathOrUrl());
- path = path.section('/', 0, index);
-
- if ( path.length() >= 1 && path.at(path.length()-1) != '/')
- {
- path.append('/');
+ // keep scheme, hostname etc. maybe we will need this in the future
+ // for e.g. browsing ftp repositories.
+ QString pre(((QUrl)url()).toString(QUrl::RemovePath));
+ QString path(url().path());
+
+ if (!path.isEmpty()) {
+ if (index == 0) //prevent the last "/" from being stripped
+ path = "/"; //or we end up with an empty path
+ else
+ path = path.section('/', 0, index);
}
- return path;
+ return KUrl(pre + path);
}
const QLinkedList<UrlNavigator::HistoryElem>& UrlNavigator::history(int& index) const
}
}
+void UrlNavigator::setShowHiddenFiles( bool show )
+{
+ m_showHiddenFiles = show;
+}
+
void UrlNavigator::dropUrls(const KUrl::List& urls,
const KUrl& destination)
{
void UrlNavigator::setUrl(const KUrl& url)
{
QString urlStr(url.pathOrUrl());
+
+ // TODO: a patch has been submitted by Filip Brcic which adjusts
+ // the URL for tar and zip files. See https://bugs.kde.org/show_bug.cgi?id=142781
+ // for details. The URL navigator part of the patch has not been committed yet,
+ // as the URL navigator will be subject of change and
+ // we might think of a more generic approach to check the protocol + MIME type for
+ // this use case.
+
//kDebug() << "setUrl(" << url << ")" << endl;
if ( urlStr.length() > 0 && urlStr.at(0) == '~') {
// replace '~' by the home directory
KUrl typedUrl(text);
if (typedUrl.hasPass()) {
- typedUrl.setPass(QString::null);
+ typedUrl.setPass(QString());
}
QStringList urls = m_pathBox->urls();
QString hostText = url().host();
if (!url().user().isEmpty()) {
- hostText = url().user() + "@" + hostText;
+ hostText = url().user() + '@' + hostText;
}
if (!m_host) {