#include <QDockWidget>
DolphinMainWindow::DolphinMainWindow(int id) :
- KMainWindow(0),
+ KXmlGuiWindow(0),
m_newMenu(0),
m_splitter(0),
m_activeView(0),
case DolphinView::SortByGroup:
action = actionCollection()->action("by_group");
break;
+ case DolphinView::SortByType:
+ action = actionCollection()->action("by_type");
default:
break;
}
settings.save();
- // TODO: I assume there will be a generic way in KDE 4 to store the docks
- // of the main window. In the meantime they are stored manually:
- QString filename = KStandardDirs::locateLocal("data", KGlobal::mainComponent().componentName());
- filename.append("/panels_layout");
- QFile file(filename);
- if (file.open(QIODevice::WriteOnly)) {
- QByteArray data = saveState();
- file.write(data);
- file.close();
- }
-
- KMainWindow::closeEvent(event);
+ KXmlGuiWindow::closeEvent(event);
}
void DolphinMainWindow::saveProperties(KConfig* config)
m_activeView->setSorting(DolphinView::SortByGroup);
}
+void DolphinMainWindow::sortByType()
+{
+ m_activeView->setSorting(DolphinView::SortByType);
+}
+
void DolphinMainWindow::toggleSortOrder()
{
const Qt::SortOrder order = (m_activeView->sortOrder() == Qt::AscendingOrder) ?
}
updateViewActions();
-
- // TODO: I assume there will be a generic way in KDE 4 to restore the docks
- // of the main window. In the meantime they are restored manually (see also
- // DolphinMainWindow::closeEvent() for more details):
- QString filename = KStandardDirs::locateLocal("data", KGlobal::mainComponent().componentName()); filename.append("/panels_layout");
- QFile file(filename);
- if (file.open(QIODevice::ReadOnly)) {
- QByteArray data = file.readAll();
- restoreState(data);
- file.close();
- }
}
void DolphinMainWindow::setupActions()
KToggleAction* columnView = actionCollection()->add<KToggleAction>("columns");
columnView->setText(i18n("Columns"));
columnView->setShortcut(Qt::CTRL | Qt::Key_3);
- columnView->setIcon(KIcon("view-tree"));
+ columnView->setIcon(KIcon("fileview-column"));
connect(columnView, SIGNAL(triggered()), this, SLOT(setColumnView()));
QActionGroup* viewModeGroup = new QActionGroup(this);
sortByGroup->setText(i18n("By Group"));
connect(sortByGroup, SIGNAL(triggered()), this, SLOT(sortByGroup()));
+ KToggleAction* sortByType = actionCollection()->add<KToggleAction>("by_type");
+ sortByType->setText(i18n("By Type"));
+ connect(sortByType, SIGNAL(triggered()), this, SLOT(sortByType()));
+
QActionGroup* sortGroup = new QActionGroup(this);
sortGroup->addAction(sortByName);
sortGroup->addAction(sortBySize);
sortGroup->addAction(sortByPermissions);
sortGroup->addAction(sortByOwner);
sortGroup->addAction(sortByGroup);
+ sortGroup->addAction(sortByType);
KToggleAction* sortDescending = actionCollection()->add<KToggleAction>("descending");
sortDescending->setText(i18n("Descending"));
QAction* findFile = actionCollection()->addAction("find_file");
findFile->setText(i18n("Find File..."));
- findFile->setShortcut(Qt::Key_F);
+ findFile->setShortcut(Qt::CTRL | Qt::Key_F);
findFile->setIcon(KIcon("file-find"));
connect(findFile, SIGNAL(triggered()), this, SLOT(findFile()));
void DolphinMainWindow::setupDockWidgets()
{
- // TODO: there's a lot copy/paste code here. Provide a generic approach
- // after the dock concept has been finalized.
-
// setup "Information"
- QDockWidget* infoDock = new QDockWidget(i18n("Information"), this);
+ QDockWidget* infoDock = new QDockWidget(i18n("Information"));
infoDock->setObjectName("infoDock");
infoDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
SidebarPage* infoWidget = new InfoSidebarPage(infoDock);
infoDock->setWidget(infoWidget);
-
infoDock->toggleViewAction()->setText(i18n("Show Information Panel"));
actionCollection()->addAction("show_info_panel", infoDock->toggleViewAction());
addDockWidget(Qt::RightDockWidgetArea, infoDock);
- connectSidebarPage(infoWidget);
+ connect(this, SIGNAL(urlChanged(KUrl)),
+ infoWidget, SLOT(setUrl(KUrl)));
+ connect(this, SIGNAL(selectionChanged(KFileItemList)),
+ infoWidget, SLOT(setSelection(KFileItemList)));
// setup "Tree View"
- QDockWidget* treeViewDock = new QDockWidget(i18n("Folders")); // TODO: naming?
+ QDockWidget* treeViewDock = new QDockWidget(i18n("Folders"));
treeViewDock->setObjectName("treeViewDock");
treeViewDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
TreeViewSidebarPage* treeWidget = new TreeViewSidebarPage(treeViewDock);
actionCollection()->addAction("show_folders_panel", treeViewDock->toggleViewAction());
addDockWidget(Qt::LeftDockWidgetArea, treeViewDock);
- connectSidebarPage(treeWidget);
+ connect(this, SIGNAL(urlChanged(KUrl)),
+ treeWidget, SLOT(setUrl(KUrl)));
+ connect(treeWidget, SIGNAL(changeUrl(KUrl)),
+ this, SLOT(changeUrl(KUrl)));
+ connect(treeWidget, SIGNAL(changeSelection(KFileItemList)),
+ this, SLOT(changeSelection(KFileItemList)));
+ connect(treeWidget, SIGNAL(urlsDropped(KUrl::List, KUrl)),
+ this, SLOT(dropUrls(KUrl::List, KUrl)));
const bool firstRun = DolphinSettings::instance().generalSettings()->firstRun();
if (firstRun) {
KFilePlacesView *listView = new KFilePlacesView(placesDock);
placesDock->setWidget(listView);
listView->setModel(DolphinSettings::instance().placesModel());
+
+ placesDock->toggleViewAction()->setText(i18n("Show Places Panel"));
+ actionCollection()->addAction("show_places_panel", placesDock->toggleViewAction());
+
addDockWidget(Qt::LeftDockWidgetArea, placesDock);
connect(listView, SIGNAL(urlChanged(KUrl)),
this, SLOT(changeUrl(KUrl)));
connect(navigator, SIGNAL(historyChanged()),
this, SLOT(slotHistoryChanged()));
}
-void DolphinMainWindow::connectSidebarPage(SidebarPage* page)
-{
- connect(page, SIGNAL(changeUrl(KUrl)),
- this, SLOT(changeUrl(KUrl)));
- connect(page, SIGNAL(changeSelection(KFileItemList)),
- this, SLOT(changeSelection(KFileItemList)));
- connect(page, SIGNAL(urlsDropped(KUrl::List, KUrl)),
- this, SLOT(dropUrls(KUrl::List, KUrl)));
-
- connect(this, SIGNAL(urlChanged(KUrl)),
- page, SLOT(setUrl(KUrl)));
- connect(this, SIGNAL(selectionChanged(KFileItemList)),
- page, SLOT(setSelection(KFileItemList)));
-}
DolphinMainWindow::UndoUiInterface::UndoUiInterface(DolphinMainWindow* mainWin) :
- KonqUndoManager::UiInterface(mainWin),
- m_mainWin(mainWin)
+ KonqUndoManager::UiInterface(mainWin),
+ m_mainWin(mainWin)
{
Q_ASSERT(m_mainWin != 0);
}
DolphinMainWindow::UndoUiInterface::~UndoUiInterface()
-{}
+{
+}
void DolphinMainWindow::UndoUiInterface::jobError(KIO::Job* job)
{