Lines 21-30
Link Here
|
21 |
#include "folderview.h" |
21 |
#include "folderview.h" |
22 |
|
22 |
|
23 |
#include <QClipboard> |
23 |
#include <QClipboard> |
24 |
#include <QDebug> |
|
|
25 |
#include <QDesktopServices> |
26 |
#include <QDesktopWidget> |
24 |
#include <QDesktopWidget> |
27 |
#include <QDrag> |
|
|
28 |
#include <QGraphicsLinearLayout> |
25 |
#include <QGraphicsLinearLayout> |
29 |
#include <QGraphicsView> |
26 |
#include <QGraphicsView> |
30 |
#include <QGraphicsSceneDragDropEvent> |
27 |
#include <QGraphicsSceneDragDropEvent> |
Lines 41-56
Link Here
|
41 |
#include <kfileplacesmodel.h> |
38 |
#include <kfileplacesmodel.h> |
42 |
#include <kfilepreviewgenerator.h> |
39 |
#include <kfilepreviewgenerator.h> |
43 |
#include <KGlobalSettings> |
40 |
#include <KGlobalSettings> |
44 |
#include <KMenu> |
|
|
45 |
#include <KStandardDirs> |
46 |
#include <KStandardShortcut> |
41 |
#include <KStandardShortcut> |
47 |
#include <KStringHandler> |
42 |
#include <KStringHandler> |
48 |
#include <KTemporaryFile> |
43 |
#include <KTemporaryFile> |
|
|
44 |
#include <KStandardDirs> |
45 |
#include <KMenu> |
49 |
|
46 |
|
50 |
#include <kio/copyjob.h> |
47 |
#include <kio/copyjob.h> |
51 |
#include <kio/fileundomanager.h> |
48 |
#include <kio/fileundomanager.h> |
52 |
#include <kio/paste.h> |
49 |
#include <kio/paste.h> |
53 |
#include <KParts/BrowserExtension> |
|
|
54 |
|
50 |
|
55 |
#include <kfileitemactions.h> |
51 |
#include <kfileitemactions.h> |
56 |
#include <kfileitemlistproperties.h> |
52 |
#include <kfileitemlistproperties.h> |
Lines 360-366
Link Here
|
360 |
m_model->setMimeTypeFilterList(m_filterFilesMimeList); |
356 |
m_model->setMimeTypeFilterList(m_filterFilesMimeList); |
361 |
m_model->setFileNameFilter(m_filterFiles); |
357 |
m_model->setFileNameFilter(m_filterFiles); |
362 |
m_model->setSortDirectoriesFirst(m_sortDirsFirst); |
358 |
m_model->setSortDirectoriesFirst(m_sortDirsFirst); |
363 |
m_model->setDynamicSortFilter(true); |
359 |
m_model->setDynamicSortFilter(m_sortColumn != -1); |
364 |
m_model->sort(m_sortColumn != -1 ? m_sortColumn : KDirModel::Name, Qt::AscendingOrder); |
360 |
m_model->sort(m_sortColumn != -1 ? m_sortColumn : KDirModel::Name, Qt::AscendingOrder); |
365 |
|
361 |
|
366 |
DirLister *lister = new DirLister(this); |
362 |
DirLister *lister = new DirLister(this); |
Lines 420-429
Link Here
|
420 |
|
416 |
|
421 |
void FolderView::configChanged() |
417 |
void FolderView::configChanged() |
422 |
{ |
418 |
{ |
423 |
//TODO: reload all other config values there |
|
|
424 |
KConfigGroup cg = config(); |
419 |
KConfigGroup cg = config(); |
425 |
setUrl(cg.readEntry("url", m_url)); |
420 |
|
426 |
m_dirModel->dirLister()->openUrl(m_url); |
421 |
//Declare some variables that are used afterwards |
|
|
422 |
bool needReload = false; |
423 |
bool preserveIconPositions = false; |
424 |
|
425 |
//Reload m_customLabel values |
426 |
QString label = m_customLabel; |
427 |
m_customLabel = cg.readEntry("customLabel", m_customLabel); |
428 |
if (label != m_customLabel) { |
429 |
needReload = true; |
430 |
} |
431 |
|
432 |
//Reload m_customIconSize values |
433 |
const int size = m_customIconSize; |
434 |
m_customIconSize = cg.readEntry("customIconSize", m_customIconSize); |
435 |
if (size != iconSize().width()) { |
436 |
needReload = true; |
437 |
|
438 |
} |
439 |
|
440 |
m_showPreviews = cg.readEntry("showPreviews", m_showPreviews); |
441 |
m_drawShadows = cg.readEntry("drawShadows", m_drawShadows); |
442 |
m_iconsLocked = cg.readEntry("iconsLocked", m_iconsLocked); |
443 |
m_alignToGrid = cg.readEntry("alignToGrid", m_alignToGrid); |
444 |
m_numTextLines = cg.readEntry("numTextLines", m_numTextLines); |
445 |
|
446 |
const int filterType = m_filterType; |
447 |
m_filterType = cg.readEntry("filter", m_filterType); |
448 |
if (filterType != m_filterType) { |
449 |
needReload = true; |
450 |
} |
451 |
|
452 |
QColor color = m_textColor; |
453 |
m_textColor = cg.readEntry("textColor", m_textColor); |
454 |
if (color != m_textColor) { |
455 |
needReload = true; |
456 |
} |
457 |
|
458 |
m_previewPlugins = cg.readEntry("previewPlugins", m_previewPlugins); |
459 |
|
460 |
if (m_previewGenerator && m_previewPlugins != m_previewGenerator->enabledPlugins()) { |
461 |
m_previewGenerator->setEnabledPlugins(m_previewPlugins); |
462 |
|
463 |
//Changing the preview plugins will also need a reload to work, so we need to preserve |
464 |
//the icons position |
465 |
needReload = true; |
466 |
preserveIconPositions = true; |
467 |
} |
468 |
|
469 |
m_sortDirsFirst = cg.readEntry("sortDirsFirst", m_sortDirsFirst); |
470 |
toggleDirectoriesFirst(m_sortDirsFirst); |
471 |
|
472 |
const int sortColumn = m_sortColumn; |
473 |
m_sortColumn = cg.readEntry("sortColumn", m_sortColumn); |
474 |
if (m_sortColumn != sortColumn) { |
475 |
if (m_sortColumn != -1) { |
476 |
m_model->invalidate(); |
477 |
m_model->sort(m_sortColumn, Qt::AscendingOrder); |
478 |
m_model->setDynamicSortFilter(true); |
479 |
} else if (m_iconView) { |
480 |
m_iconView->setCustomLayout(true); |
481 |
m_model->setDynamicSortFilter(false); |
482 |
} |
483 |
updateSortActionsState(); |
484 |
} |
485 |
|
486 |
const QString filterFiles = m_filterFiles; |
487 |
m_filterFiles = cg.readEntry("filterFiles", m_filterFiles); |
488 |
|
489 |
if (filterFiles != m_filterFiles) { |
490 |
needReload = true; |
491 |
} |
492 |
|
493 |
const QStringList mimeFilter = m_filterFilesMimeList; |
494 |
m_filterFilesMimeList = cg.readEntry("mimeFilter", m_filterFilesMimeList); |
495 |
|
496 |
if (mimeFilter != m_filterFilesMimeList) { |
497 |
needReload = true; |
498 |
} |
499 |
|
500 |
const KUrl url = m_url; |
501 |
m_url = cg.readEntry("url", m_url); |
502 |
if (url != m_url) { |
503 |
setUrl(m_url); |
504 |
needReload = true; |
505 |
} |
506 |
|
507 |
|
508 |
if (m_iconView) { |
509 |
updateIconViewState(); |
510 |
} |
511 |
|
512 |
if (m_listView) { |
513 |
updateListViewState(); |
514 |
} |
515 |
|
516 |
if (needReload) { |
517 |
//Manually save and restore the icon positions if we need it |
518 |
QStringList iconPositionsData; |
519 |
if (preserveIconPositions && m_iconView) { |
520 |
iconPositionsData = m_iconView->iconPositionsData(); |
521 |
|
522 |
} |
523 |
|
524 |
|
525 |
if (preserveIconPositions && m_iconView) { |
526 |
m_iconView->setIconPositionsData(iconPositionsData); |
527 |
} |
528 |
// So the KFileItemActions will be recreated for the new URL. |
529 |
delete m_itemActions; |
530 |
m_itemActions = 0; |
531 |
m_dirModel->dirLister()->openUrl(m_url); |
532 |
} |
427 |
} |
533 |
} |
428 |
|
534 |
|
429 |
FolderView::~FolderView() |
535 |
FolderView::~FolderView() |
Lines 712-719
Link Here
|
712 |
if (m_sortColumn != -1) { |
818 |
if (m_sortColumn != -1) { |
713 |
m_model->invalidate(); |
819 |
m_model->invalidate(); |
714 |
m_model->sort(m_sortColumn, Qt::AscendingOrder); |
820 |
m_model->sort(m_sortColumn, Qt::AscendingOrder); |
|
|
821 |
m_model->setDynamicSortFilter(true); |
715 |
} else if (m_iconView) { |
822 |
} else if (m_iconView) { |
716 |
m_iconView->setCustomLayout(true); |
823 |
m_iconView->setCustomLayout(true); |
|
|
824 |
m_model->setDynamicSortFilter(false); |
717 |
} |
825 |
} |
718 |
updateSortActionsState(); |
826 |
updateSortActionsState(); |
719 |
cg.writeEntry("sortColumn", m_sortColumn); |
827 |
cg.writeEntry("sortColumn", m_sortColumn); |
Lines 999-1017
Link Here
|
999 |
|
1107 |
|
1000 |
void FolderView::iconSettingsChanged(int group) |
1108 |
void FolderView::iconSettingsChanged(int group) |
1001 |
{ |
1109 |
{ |
1002 |
if (group == KIconLoader::Desktop && m_iconView) |
1110 |
if (group == KIconLoader::Desktop && m_iconView) { |
1003 |
{ |
|
|
1004 |
const int size = (m_customIconSize != 0) ? |
1111 |
const int size = (m_customIconSize != 0) ? |
1005 |
m_customIconSize : KIconLoader::global()->currentSize(KIconLoader::Desktop); |
1112 |
m_customIconSize : KIconLoader::global()->currentSize(KIconLoader::Desktop); |
1006 |
|
1113 |
|
1007 |
m_iconView->setIconSize(QSize(size, size)); |
1114 |
m_iconView->setIconSize(QSize(size, size)); |
1008 |
} |
1115 |
m_iconView->markAreaDirty(m_iconView->visibleArea()); |
1009 |
else if (group == KIconLoader::Panel && m_listView) |
1116 |
m_iconView->update(); |
1010 |
{ |
1117 |
} else if (group == KIconLoader::Panel && m_listView) { |
1011 |
const int size = (m_customIconSize != 0) ? |
1118 |
const int size = (m_customIconSize != 0) ? |
1012 |
m_customIconSize : KIconLoader::global()->currentSize(KIconLoader::Panel); |
1119 |
m_customIconSize : KIconLoader::global()->currentSize(KIconLoader::Panel); |
1013 |
|
1120 |
|
1014 |
m_listView->setIconSize(QSize(size, size)); |
1121 |
m_listView->setIconSize(QSize(size, size)); |
|
|
1122 |
m_listView->markAreaDirty(m_listView->visibleArea()); |
1123 |
m_listView->update(); |
1015 |
} |
1124 |
} |
1016 |
} |
1125 |
} |
1017 |
|
1126 |
|
Lines 1409-1414
Link Here
|
1409 |
|
1518 |
|
1410 |
// Create the new menu |
1519 |
// Create the new menu |
1411 |
m_newMenu = new KNewFileMenu(&m_actionCollection, "new_menu", QApplication::desktop()); |
1520 |
m_newMenu = new KNewFileMenu(&m_actionCollection, "new_menu", QApplication::desktop()); |
|
|
1521 |
// m_newMenu->setModal(false); |
1522 |
|
1412 |
connect(m_newMenu->menu(), SIGNAL(aboutToShow()), this, SLOT(aboutToShowCreateNew())); |
1523 |
connect(m_newMenu->menu(), SIGNAL(aboutToShow()), this, SLOT(aboutToShowCreateNew())); |
1413 |
|
1524 |
|
1414 |
m_actionCollection.addAction("lock_icons", lockIcons); |
1525 |
m_actionCollection.addAction("lock_icons", lockIcons); |
Lines 1583-1588
Link Here
|
1583 |
if (column != m_sortColumn) { |
1694 |
if (column != m_sortColumn) { |
1584 |
m_model->invalidate(); |
1695 |
m_model->invalidate(); |
1585 |
m_model->sort(column, Qt::AscendingOrder); |
1696 |
m_model->sort(column, Qt::AscendingOrder); |
|
|
1697 |
m_model->setDynamicSortFilter(true); |
1586 |
m_sortColumn = column; |
1698 |
m_sortColumn = column; |
1587 |
config().writeEntry("sortColumn", m_sortColumn); |
1699 |
config().writeEntry("sortColumn", m_sortColumn); |
1588 |
emit configNeedsSaving(); |
1700 |
emit configNeedsSaving(); |
Lines 1683-1688
Link Here
|
1683 |
// If the user has rearranged the icons, the view is no longer sorted |
1795 |
// If the user has rearranged the icons, the view is no longer sorted |
1684 |
if (m_sortColumn != -1) { |
1796 |
if (m_sortColumn != -1) { |
1685 |
m_sortColumn = -1; |
1797 |
m_sortColumn = -1; |
|
|
1798 |
m_model->setDynamicSortFilter(false); |
1686 |
updateSortActionsState(); |
1799 |
updateSortActionsState(); |
1687 |
config().writeEntry("sortColumn", m_sortColumn); |
1800 |
config().writeEntry("sortColumn", m_sortColumn); |
1688 |
emit configNeedsSaving(); |
1801 |
emit configNeedsSaving(); |