#include "bookmarkselector.h"
#include "dolphinsettings.h"
-#include "generalsettings.h"
+#include "dolphin_generalsettings.h"
#include "protocolcombo.h"
#include "urlnavigatorbutton.h"
#include <assert.h>
#include <kfileitem.h>
+#include <kicon.h>
#include <klocale.h>
#include <kprotocolinfo.h>
#include <kurlcombobox.h>
#include <QApplication>
#include <QClipboard>
-#include <QCheckBox>
#include <QDir>
#include <QHBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QMouseEvent>
+#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),
m_protocolSeparator(0),
- m_host(0)
+ m_host(0),
+ m_filler(0)
{
m_layout = new QHBoxLayout();
m_layout->setSpacing(0);
m_history.prepend(HistoryElem(url));
QFontMetrics fontMetrics(font());
- setMinimumHeight(fontMetrics.height() + 8);
-
- m_toggleButton = new QCheckBox();
+ setMinimumHeight(fontMetrics.height() + 10);
+
+ // intialize toggle button which switches between the breadcrumb view
+ // and the traditional view
+ m_toggleButton = new QToolButton();
+ m_toggleButton->setCheckable(true);
+ 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()),
- this, SLOT(slotClicked()));
+ this, SLOT(switchView()));
if (DolphinSettings::instance().generalSettings()->editableUrl()) {
m_toggleButton->toggle();
}
+ // initialize the bookmark selector
m_bookmarkSelector = new BookmarkSelector(this);
connect(m_bookmarkSelector, SIGNAL(bookmarkActivated(const KUrl&)),
this, SLOT(setUrl(const KUrl&)));
+ // initialize the path box of the traditional view
m_pathBox = new KUrlComboBox(KUrlComboBox::Directories, true, this);
KUrlCompletion* kurlCompletion = new KUrlCompletion(KUrlCompletion::DirCompletion);
// Append a filler widget at the end, which automatically resizes to the
// maximum available width. This assures that the URL navigator uses the
// whole width, so that the clipboard content can be dropped.
- QWidget* filler = new QWidget();
- filler->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+ m_filler = new QWidget();
+ m_filler->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
m_layout->addWidget(m_toggleButton);
m_layout->addWidget(m_bookmarkSelector);
m_layout->addWidget(m_pathBox);
- m_layout->addWidget(filler);
+ m_layout->addWidget(m_filler);
setLayout(m_layout);
updateContent();
{
if (isUrlEditable() != editable) {
m_toggleButton->toggle();
- slotClicked();
+ switchView();
}
}
}
}
+void UrlNavigator::setShowHiddenFiles( bool show )
+{
+ m_showHiddenFiles = show;
+}
+
void UrlNavigator::dropUrls(const KUrl::List& urls,
const KUrl& destination)
{
KUrl typedUrl(text);
if (typedUrl.hasPass()) {
- typedUrl.setPass(QString::null);
+ typedUrl.setPass(QString());
}
QStringList urls = m_pathBox->urls();
else {
if (!m_host) {
m_protocolSeparator = new QLabel("://", this);
+ appendWidget(m_protocolSeparator);
m_host = new QLineEdit(this);
+ appendWidget(m_host);
connect(m_host, SIGNAL(lostFocus()),
this, SLOT(slotRemoteHostActivated()));
m_urls.append(newUrl);*/
}
-void UrlNavigator::slotClicked()
+void UrlNavigator::switchView()
{
+ updateContent();
if (isUrlEditable()) {
m_pathBox->setFocus();
- updateContent();
}
else {
setUrl(m_pathBox->currentText());
- emit requestActivation();
}
+ emit requestActivation();
}
void UrlNavigator::updateHistoryElem()
delete m_protocolSeparator; m_protocolSeparator = 0;
delete m_host; m_host = 0;
deleteButtons();
+ m_filler->hide();
m_toggleButton->setToolTip(i18n("Browse (%1, Escape)", shortcut));
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
m_pathBox->hide();
+ m_filler->show();
// get the data from the currently selected bookmark
KBookmark bookmark = m_bookmarkSelector->selectedBookmark();
if (!m_protocols) {
deleteButtons();
m_protocols = new ProtocolCombo(protocol, this);
+ appendWidget(m_protocols);
connect(m_protocols, SIGNAL(activated(const QString&)),
this, SLOT(slotProtocolChanged(const QString&)));
}
QString hostText = url().host();
if (!url().user().isEmpty()) {
- hostText = url().user() + "@" + hostText;
+ hostText = url().user() + '@' + hostText;
}
if (!m_host) {