* 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 "dolphinview.h"
#include <QItemSelectionModel>
-
-#include <kdirmodel.h>
-
-#include <qlayout.h>
-//Added by qt3to4:
#include <Q3ValueList>
#include <QDropEvent>
#include <QMouseEvent>
#include <QVBoxLayout>
+
+#include <kdirmodel.h>
+#include <kfileitemdelegate.h>
#include <kurl.h>
#include <klocale.h>
#include <kio/netaccess.h>
#include "undomanager.h"
#include "renamedialog.h"
#include "progressindicator.h"
-
#include "filterbar.h"
DolphinView::DolphinView(DolphinMainWindow *mainWindow,
Mode mode,
bool showHiddenFiles) :
QWidget(parent),
- m_mainWindow(mainWindow),
m_refreshing(false),
m_showProgress(false),
m_mode(mode),
+ m_mainWindow(mainWindow),
m_statusBar(0),
m_iconSize(0),
m_folderCount(0),
m_fileCount(0),
m_filterBar(0)
{
+ hide();
setFocusPolicy(Qt::StrongFocus);
m_topLayout = new QVBoxLayout(this);
-
- connect(this, SIGNAL(signalModeChanged()),
- mainWindow, SLOT(slotViewModeChanged()));
- connect(this, SIGNAL(signalShowHiddenFilesChanged()),
- mainWindow, SLOT(slotShowHiddenFilesChanged()));
- connect(this, SIGNAL(signalSortingChanged(DolphinView::Sorting)),
- mainWindow, SLOT(slotSortingChanged(DolphinView::Sorting)));
- connect(this, SIGNAL(signalSortOrderChanged(Qt::SortOrder)),
- mainWindow, SLOT(slotSortOrderChanged(Qt::SortOrder)));
+ m_topLayout->setSpacing(0);
+ m_topLayout->setMargin(0);
m_urlNavigator = new UrlNavigator(url, this);
connect(m_urlNavigator, SIGNAL(urlChanged(const KUrl&)),
- this, SLOT(slotUrlChanged(const KUrl&)));
- connect(m_urlNavigator, SIGNAL(urlChanged(const KUrl&)),
- mainWindow, SLOT(slotUrlChanged(const KUrl&)));
- connect(m_urlNavigator, SIGNAL(historyChanged()),
- mainWindow, SLOT(slotHistoryChanged()));
+ this, SLOT(loadDirectory(const KUrl&)));
m_statusBar = new DolphinStatusBar(this);
this, SLOT(slotErrorMessage(const QString&)));
m_iconsView = new DolphinIconsView(this);
- connect(m_iconsView, SIGNAL(clicked(const QModelIndex&)),
- this, SLOT(triggerItem(const QModelIndex&)));
applyModeToView();
KDirModel* model = new KDirModel();
model->setDirLister(m_dirLister);
m_iconsView->setModel(model);
+ KFileItemDelegate* delegate = new KFileItemDelegate(this);
+ m_iconsView->setItemDelegate(delegate);
+
m_dirLister->setDelayedMimeTypes(true);
- new KMimeTypeResolver( m_iconsView, model );
+ new KMimeTypeResolver(m_iconsView, model);
m_iconSize = K3Icon::SizeMedium;
- m_filterBar = new FilterBar(mainWindow, this);
+ m_filterBar = new FilterBar(this);
m_filterBar->hide();
- connect(m_filterBar, SIGNAL(signalFilterChanged(const QString&)),
+ connect(m_filterBar, SIGNAL(filterChanged(const QString&)),
this, SLOT(slotChangeNameFilter(const QString&)));
+ connect(m_filterBar, SIGNAL(closed()),
+ this, SLOT(closeFilterBar()));
m_topLayout->addWidget(m_urlNavigator);
m_topLayout->addWidget(m_iconsView);
m_topLayout->addWidget(m_filterBar);
m_topLayout->addWidget(m_statusBar);
+ connect(m_iconsView, SIGNAL(clicked(const QModelIndex&)),
+ this, SLOT(triggerItem(const QModelIndex&)));
+ connect(m_iconsView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),
+ this, SLOT(emitSelectionChangedSignal()));
+
startDirLister(m_urlNavigator->url());
}
applyModeToView();
startDirLister(m_urlNavigator->url());
- emit signalModeChanged();
+ emit modeChanged();
}
DolphinView::Mode DolphinView::mode() const
m_dirLister->setShowingDotFiles(show);
- emit signalShowHiddenFilesChanged();
+ emit showHiddenFilesChanged();
reload();
}
}
}
-void DolphinView::requestItemInfo(const KUrl& url)
+void DolphinView::emitRequestItemInfo(const KUrl& url)
+{
+ emit requestItemInfo(url);
+}
+
+bool DolphinView::isFilterBarVisible() const
{
- emit signalRequestItemInfo(url);
+ return m_filterBar->isVisible();
}
bool DolphinView::isUrlEditable() const
return m_mainWindow;
}
-void DolphinView::slotUrlChanged(const KUrl& url)
+void DolphinView::loadDirectory(const KUrl& url)
{
const ViewProperties props(url);
setMode(props.viewMode());
setSortOrder(props.sortOrder());
startDirLister(url);
-
- // The selectionChanged signal is not emitted when a new view object is
- // created. The application does not care whether a view is represented by a
- // different instance, hence inform the application that the selection might have
- // changed so that it can update it's actions.
- mainWindow()->slotSelectionChanged();
-
- emit signalUrlChanged(url);
+ emit urlChanged(url);
}
void DolphinView::triggerIconsViewItem(Q3IconViewItem* item)
mainWindow()->setActiveView(this);
}
+void DolphinView::emitSelectionChangedSignal()
+{
+ emit selectionChanged();
+}
+
+void DolphinView::closeFilterBar()
+{
+ m_filterBar->hide();
+ emit showFilterBarChanged(false);
+}
+
void DolphinView::slotContentsMoving(int x, int y)
{
if (!m_refreshing) {
}*/
}
-bool DolphinView::isFilterBarVisible()
-{
- return m_filterBar->isVisible();
-}
-
void DolphinView::applyModeToView()
{
+ //m_iconsView->setAlternatingRowColors(true);
+ m_iconsView->setSelectionMode(QAbstractItemView::ExtendedSelection);
+
// TODO: the following code just tries to test some QListView capabilities
switch (m_mode) {
case IconsView: