const KUrl& url,
Mode mode,
bool showHiddenFiles) :
- QWidget(parent),
- m_showProgress(false),
- m_blockContentsMovedSignal(false),
- m_mode(mode),
- m_iconSize(0),
- m_folderCount(0),
- m_fileCount(0),
- m_mainWindow(mainWindow),
- m_topLayout(0),
- m_urlNavigator(0),
- m_controller(0),
- m_iconsView(0),
- m_detailsView(0),
- m_columnView(0),
- m_fileItemDelegate(0),
- m_filterBar(0),
- m_statusBar(0),
- m_dirModel(0),
- m_dirLister(0),
- m_proxyModel(0)
+ QWidget(parent),
+ m_showProgress(false),
+ m_blockContentsMovedSignal(false),
+ m_mode(mode),
+ m_iconSize(0),
+ m_folderCount(0),
+ m_fileCount(0),
+ m_mainWindow(mainWindow),
+ m_topLayout(0),
+ m_urlNavigator(0),
+ m_controller(0),
+ m_iconsView(0),
+ m_detailsView(0),
+ m_columnView(0),
+ m_fileItemDelegate(0),
+ m_filterBar(0),
+ m_statusBar(0),
+ m_dirModel(0),
+ m_dirLister(0),
+ m_proxyModel(0),
+ m_previewJob(0)
{
hide();
setFocusPolicy(Qt::StrongFocus);
DolphinView::~DolphinView()
{
+ if (m_previewJob != 0) {
+ m_previewJob->doKill();
+ m_previewJob = 0;
+ }
+
delete m_dirLister;
m_dirLister = 0;
}
void DolphinView::generatePreviews(const KFileItemList& items)
{
if (m_controller->showPreview()) {
- KIO::PreviewJob* job = KIO::filePreview(items, 128);
- connect(job, SIGNAL(gotPreview(const KFileItem*, const QPixmap&)),
+ if (m_previewJob != 0) {
+ m_previewJob->doKill();
+ }
+ m_previewJob = KIO::filePreview(items, 128);
+ connect(m_previewJob, SIGNAL(gotPreview(const KFileItem*, const QPixmap&)),
this, SLOT(showPreview(const KFileItem*, const QPixmap&)));
+ connect(m_previewJob, SIGNAL(result(KJob*)),
+ this, SLOT(slotPreviewResult(KJob*)));
}
}
m_blockContentsMovedSignal = true;
m_dirLister->stop();
+ if (m_previewJob != 0) {
+ m_previewJob->doKill();
+ m_previewJob = 0;
+ }
+
bool openDir = true;
bool keepOldDirs = isColumnViewActive();
if (keepOldDirs) {
applyCutItemEffect();
}
+void DolphinView::slotPreviewResult(KJob* job)
+{
+ Q_UNUSED(job);
+ m_previewJob = 0;
+}
+
void DolphinView::createView()
{
// delete current view
class QTimer;
class ViewProperties;
+namespace KIO
+{
+ class PreviewJob;
+}
+
/**
* @short Represents a view for the directory content
* including the navigation bar, filter bar and status bar.
/** Applies an item effect to all cut items of the clipboard. */
void updateCutItems();
+ /** Is invoked when the preview job has been finished. */
+ void slotPreviewResult(KJob* job);
+
private:
void startDirLister(const KUrl& url, bool reload = false);
DolphinDirLister* m_dirLister;
DolphinSortFilterProxyModel* m_proxyModel;
+ KIO::PreviewJob* m_previewJob;
+
QList<CutItem> m_cutItemsCache;
};