33 #include <QtCore/QPointer>
38 #ifdef Unsorted // the "I hate X.h" modus
70 class K3FileView::K3FileViewPrivate
87 QPointer<KActionCollection> actions;
90 const static QDir::SortFlags defaultSortFlags;
91 QDir::SortFlags m_sorting;
103 bool myOnlyDoubleClickSelectsFiles;
107 const QDir::SortFlags K3FileView::K3FileViewPrivate::defaultSortFlags = (QDir::Name | QDir::IgnoreCase | QDir::DirsFirst);
111 :d(new K3FileViewPrivate())
113 d->m_sorting = K3FileView::K3FileViewPrivate::defaultSortFlags;
116 sig->setObjectName(
"view-signaller");
123 d->m_viewName =
i18n(
"Unknown View");
125 d->myOnlyDoubleClickSelectsFiles =
false;
137 QObject::connect(
sig, SIGNAL( activatedMenu(
const KFileItem &,
145 QObject::connect(
sig, SIGNAL(fileHighlighted(
KFileItem)),
147 QObject::connect(
sig, SIGNAL(sortingChanged(QDir::SortFlags)),
148 parent->
sig, SIGNAL(sortingChanged(QDir::SortFlags)));
174 KFileItemList::const_iterator kit = list.begin();
175 const KFileItemList::const_iterator kend = list.end();
176 for ( ; kit != kend; ++kit ) {
200 d->m_sorting = new_sort;
212 return (d->m_sorting & QDir::Reversed);
219 setSorting( QDir::SortFlags( spec ^ QDir::Reversed ) );
224 return d->filesNumber + d->dirsNumber;
229 return d->filesNumber;
234 return d->dirsNumber;
240 static const QString &dirup = KGlobal::staticQString(
"..");
242 bool keepFirst =
false;
243 bool dirsFirst = ((m_sorting & QDir::DirsFirst) == QDir::DirsFirst);
249 if ( fi1->
name() == dirup ) {
251 keepFirst = dirsFirst;
253 else if ( fi2->
name() == dirup ) {
255 keepFirst = dirsFirst;
259 if ( fi1->
isDir() != fi2->
isDir() && dirsFirst ) {
260 bigger = fi2->
isDir();
265 QDir::SortFlags sort =
static_cast<QDir::SortFlags
>(m_sorting & QDir::SortByMask);
274 if ( (m_sorting & QDir::IgnoreCase) == QDir::IgnoreCase )
275 bigger = (fi1->
name(
true ) > fi2->
name(
true ));
277 bigger = (fi1->
name() > fi2->
name());
297 KIO::filesize_t s1 = fi1->
size();
298 KIO::filesize_t s2 = fi2->
size();
318 if (reversed && !keepFirst )
321 return (bigger ? 1 : -1);
336 if (!filename.isNull()) {
339 if (item.
name() == filename) {
360 d->myOnlyDoubleClickSelectsFiles = enable;
364 return d->myOnlyDoubleClickSelectsFiles;
399 d->selection_mode = sm;
404 return d->selection_mode;
419 return d->m_viewName;
424 d->m_viewName = name;
447 d->actions->setObjectName(
"K3FileView::d->actions" );
467 bool reverse = SortFlags & QDir::Reversed;
468 bool dirsFirst = SortFlags & QDir::DirsFirst;
469 char start = (isDir && dirsFirst) ? (reverse ?
'2' :
'0') :
'1';
470 QString result = (SortFlags & QDir::IgnoreCase) ? value.toLower() : value;
471 return result.prepend( QLatin1Char(start) );
476 bool reverse = SortFlags & QDir::Reversed;
477 bool dirsFirst = SortFlags & QDir::DirsFirst;
478 char start = (isDir && dirsFirst) ? (reverse ?
'2' :
'0') :
'1';
479 return KIO::number( value ).rightJustified( 24,
'0' ).prepend( QLatin1Char(start) );
484 d->dropOptions = options;
489 return d->dropOptions;
494 return (QApplication::startDragTime() * 3) / 2;
497 #include "k3fileview.moc"