DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow,
QWidget* parent,
- const KUrl& url,
- DolphinView::Mode mode,
- bool showHiddenFiles) :
+ const KUrl& url) :
QWidget(parent),
m_showProgress(false),
m_folderCount(0),
m_topLayout->setSpacing(0);
m_topLayout->setMargin(0);
- connect(m_mainWindow, SIGNAL(activeViewChanged()),
- this, SLOT(updateActivationState()));
-
QClipboard* clipboard = QApplication::clipboard();
connect(clipboard, SIGNAL(dataChanged()),
this, SLOT(updateCutItems()));
m_urlNavigator = new KUrlNavigator(DolphinSettings::instance().placesModel(), url, this);
+ connect(m_urlNavigator, SIGNAL(urlsDropped(const KUrl::List&, const KUrl&)),
+ m_mainWindow, SLOT(dropUrls(const KUrl::List&, const KUrl&)));
+ connect(m_urlNavigator, SIGNAL(activated()),
+ this, SLOT(activate()));
const GeneralSettings* settings = DolphinSettings::instance().generalSettings();
m_urlNavigator->setUrlEditable(settings->editableUrl());
m_dirLister = new DolphinDirLister();
m_dirLister->setAutoUpdate(true);
m_dirLister->setMainWindow(this);
- m_dirLister->setShowingDotFiles(showHiddenFiles);
m_dirLister->setDelayedMimeTypes(true);
m_dirModel = new KDirModel();
this, SLOT(updateStatusBar()));
connect(m_dirLister, SIGNAL(completed()),
this, SLOT(updateItemCount()));
- connect(m_dirLister, SIGNAL(completed()),
- this, SLOT(updateCutItems()));
- connect(m_dirLister, SIGNAL(newItems(const KFileItemList&)),
- this, SLOT(generatePreviews(const KFileItemList&)));
connect(m_dirLister, SIGNAL(infoMessage(const QString&)),
this, SLOT(showInfoMessage(const QString&)));
connect(m_dirLister, SIGNAL(errorMessage(const QString&)),
url,
m_dirLister,
m_dirModel,
- m_proxyModel,
- mode,
- showHiddenFiles);
+ m_proxyModel);
connect(m_view, SIGNAL(urlChanged(const KUrl&)),
m_urlNavigator, SLOT(setUrl(const KUrl&)));
- connect(m_view, SIGNAL(requestContextMenu(KFileItem*, const KUrl&)),
- this, SLOT(openContextMenu(KFileItem*, const KUrl&)));
+ connect(m_view, SIGNAL(requestContextMenu(KFileItem, const KUrl&)),
+ this, SLOT(openContextMenu(KFileItem, const KUrl&)));
connect(m_view, SIGNAL(urlsDropped(const KUrl::List&, const KUrl&)),
m_mainWindow, SLOT(dropUrls(const KUrl::List&, const KUrl&)));
+ connect(m_view, SIGNAL(contentsMoved(int, int)),
+ this, SLOT(saveContentsPos(int, int)));
+ connect(m_view, SIGNAL(requestItemInfo(KFileItem)),
+ this, SLOT(showItemInfo(KFileItem)));
+ connect(m_view, SIGNAL(errorMessage(const QString&)),
+ this, SLOT(showErrorMessage(const QString&)));
+ connect(m_view, SIGNAL(infoMessage(const QString&)),
+ this, SLOT(showInfoMessage(const QString&)));
connect(m_urlNavigator, SIGNAL(urlChanged(const KUrl&)),
m_view, SLOT(setUrl(const KUrl&)));
}
}
-DolphinStatusBar* DolphinViewContainer::statusBar() const
-{
- return m_statusBar;
-}
-
bool DolphinViewContainer::isFilterBarVisible() const
{
return m_filterBar->isVisible();
return m_urlNavigator->isUrlEditable();
}
-KFileItem* DolphinViewContainer::fileItem(const QModelIndex index) const
+KFileItem DolphinViewContainer::fileItem(const QModelIndex& index) const
{
const QModelIndex dirModelIndex = m_proxyModel->mapToSource(index);
return m_dirModel->itemForIndex(dirModelIndex);
}
-DolphinMainWindow* DolphinViewContainer::mainWindow() const
-{
- return m_mainWindow;
-}
-
void DolphinViewContainer::updateProgress(int percent)
{
+ if (!m_showProgress) {
+ // Only show the directory loading progress if the status bar does
+ // not contain another progress information. This means that
+ // the directory loading progress information has the lowest priority.
+ const QString progressText(m_statusBar->progressText());
+ const QString loadingText(i18nc("@info:progress", "Loading folder..."));
+ m_showProgress = progressText.isEmpty() || (progressText == loadingText);
+ if (m_showProgress) {
+ m_statusBar->setProgressText(loadingText);
+ m_statusBar->setProgress(0);
+ }
+ }
+
if (m_showProgress) {
m_statusBar->setProgress(percent);
}
updateStatusBar();
- QTimer::singleShot(0, this, SLOT(restoreContentsPos()));
+ QTimer::singleShot(100, this, SLOT(restoreContentsPos()));
+}
+
+void DolphinViewContainer::showItemInfo(const KFileItem& item)
+{
+ if (item.isNull()) {
+ m_statusBar->clear();
+ } else {
+ m_statusBar->setMessage(item.getStatusBarInfo(), DolphinStatusBar::Default);
+ }
}
void DolphinViewContainer::showInfoMessage(const QString& msg)
QString DolphinViewContainer::selectionStatusBarText() const
{
QString text;
- const KFileItemList list = m_view->selectedItems();
+ const QList<KFileItem> list = m_view->selectedItems();
if (list.isEmpty()) {
// when an item is triggered, it is temporary selected but selectedItems()
// will return an empty list
int fileCount = 0;
int folderCount = 0;
KIO::filesize_t byteSize = 0;
- KFileItemList::const_iterator it = list.begin();
- const KFileItemList::const_iterator end = list.end();
+ QList<KFileItem>::const_iterator it = list.begin();
+ const QList<KFileItem>::const_iterator end = list.end();
while (it != end) {
- KFileItem* item = *it;
- if (item->isDir()) {
+ const KFileItem& item = *it;
+ if (item.isDir()) {
++folderCount;
} else {
++fileCount;
- byteSize += item->size();
+ byteSize += item.size();
}
++it;
}
if (folderCount > 0) {
- text = i18np("1 Folder selected", "%1 Folders selected", folderCount);
+ text = i18ncp("@info:status", "1 Folder selected", "%1 Folders selected", folderCount);
if (fileCount > 0) {
text += ", ";
}
if (fileCount > 0) {
const QString sizeText(KIO::convertSize(byteSize));
- text += i18np("1 File selected (%2)", "%1 Files selected (%2)", fileCount, sizeText);
+ text += i18ncp("@info:status", "1 File selected (%2)", "%1 Files selected (%2)", fileCount, sizeText);
}
return text;
#endif
}
-void DolphinViewContainer::openContextMenu(KFileItem* item,
+void DolphinViewContainer::openContextMenu(const KFileItem& item,
const KUrl& url)
{
DolphinContextMenu contextMenu(m_mainWindow, item, url);
contextMenu.open();
}
+void DolphinViewContainer::saveContentsPos(int x, int y)
+{
+ m_urlNavigator->savePosition(x, y);
+}
+
+void DolphinViewContainer::restoreContentsPos()
+{
+ if (!url().isEmpty()) {
+ const QPoint pos = m_urlNavigator->savedPosition();
+ m_view->setContentsPosition(pos.x(), pos.y());
+ }
+}
+
+void DolphinViewContainer::activate()
+{
+ setActive(true);
+}
+
#include "dolphinviewcontainer.moc"