diff --git a/src/dolphintabwidget.cpp b/src/dolphintabwidget.cpp index 9ecc14427..89c54baf5 100644 --- a/src/dolphintabwidget.cpp +++ b/src/dolphintabwidget.cpp @@ -1,438 +1,446 @@ /*************************************************************************** * Copyright (C) 2014 by Emmanuel Pescosta * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * 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., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ #include "dolphintabwidget.h" #include "dolphin_generalsettings.h" #include "dolphintabbar.h" #include "dolphintabpage.h" #include "dolphinviewcontainer.h" #include #include #include #include #include #include #include DolphinTabWidget::DolphinTabWidget(QWidget* parent) : QTabWidget(parent), m_placesSelectorVisible(true), m_lastViewedTab(0) { KAcceleratorManager::setNoAccel(this); connect(this, &DolphinTabWidget::tabCloseRequested, this, QOverload::of(&DolphinTabWidget::closeTab)); connect(this, &DolphinTabWidget::currentChanged, this, &DolphinTabWidget::currentTabChanged); DolphinTabBar* tabBar = new DolphinTabBar(this); connect(tabBar, &DolphinTabBar::openNewActivatedTab, this, QOverload::of(&DolphinTabWidget::openNewActivatedTab)); connect(tabBar, &DolphinTabBar::tabDropEvent, this, &DolphinTabWidget::tabDropEvent); connect(tabBar, &DolphinTabBar::tabDetachRequested, this, &DolphinTabWidget::detachTab); tabBar->hide(); setTabBar(tabBar); setDocumentMode(true); setElideMode(Qt::ElideRight); setUsesScrollButtons(true); } DolphinTabPage* DolphinTabWidget::currentTabPage() const { return tabPageAt(currentIndex()); } DolphinTabPage* DolphinTabWidget::nextTabPage() const { const int index = currentIndex() + 1; return tabPageAt(index < count() ? index : 0); } DolphinTabPage* DolphinTabWidget::prevTabPage() const { const int index = currentIndex() - 1; return tabPageAt(index >= 0 ? index : (count() - 1)); } DolphinTabPage* DolphinTabWidget::tabPageAt(const int index) const { return static_cast(widget(index)); } void DolphinTabWidget::saveProperties(KConfigGroup& group) const { const int tabCount = count(); group.writeEntry("Tab Count", tabCount); group.writeEntry("Active Tab Index", currentIndex()); for (int i = 0; i < tabCount; ++i) { const DolphinTabPage* tabPage = tabPageAt(i); group.writeEntry("Tab Data " % QString::number(i), tabPage->saveState()); } } void DolphinTabWidget::readProperties(const KConfigGroup& group) { const int tabCount = group.readEntry("Tab Count", 0); for (int i = 0; i < tabCount; ++i) { if (i >= count()) { openNewActivatedTab(); } if (group.hasKey("Tab Data " % QString::number(i))) { // Tab state created with Dolphin > 4.14.x const QByteArray state = group.readEntry("Tab Data " % QString::number(i), QByteArray()); tabPageAt(i)->restoreState(state); } else { // Tab state created with Dolphin <= 4.14.x const QByteArray state = group.readEntry("Tab " % QString::number(i), QByteArray()); tabPageAt(i)->restoreStateV1(state); } } const int index = group.readEntry("Active Tab Index", 0); setCurrentIndex(index); } void DolphinTabWidget::refreshViews() { // Left-elision is better when showing full paths, since you care most // about the current directory which is on the right if (GeneralSettings::showFullPathInTitlebar()) { setElideMode(Qt::ElideLeft); } else { setElideMode(Qt::ElideRight); } const int tabCount = count(); for (int i = 0; i < tabCount; ++i) { tabBar()->setTabText(i, tabName(tabPageAt(i))); tabPageAt(i)->refreshViews(); } } bool DolphinTabWidget::isUrlOpen(const QUrl &url) const { return indexByUrl(url).first >= 0; } void DolphinTabWidget::openNewActivatedTab() { const DolphinViewContainer* oldActiveViewContainer = currentTabPage()->activeViewContainer(); Q_ASSERT(oldActiveViewContainer); const bool isUrlEditable = oldActiveViewContainer->urlNavigator()->isUrlEditable(); openNewActivatedTab(oldActiveViewContainer->url()); DolphinViewContainer* newActiveViewContainer = currentTabPage()->activeViewContainer(); Q_ASSERT(newActiveViewContainer); // The URL navigator of the new tab should have the same editable state // as the current tab newActiveViewContainer->urlNavigator()->setUrlEditable(isUrlEditable); // Always focus the new tab's view newActiveViewContainer->view()->setFocus(); } void DolphinTabWidget::openNewActivatedTab(const QUrl& primaryUrl, const QUrl& secondaryUrl) { openNewTab(primaryUrl, secondaryUrl); setCurrentIndex(count() - 1); } void DolphinTabWidget::openNewTab(const QUrl& primaryUrl, const QUrl& secondaryUrl, TabPlacement tabPlacement) { QWidget* focusWidget = QApplication::focusWidget(); DolphinTabPage* tabPage = new DolphinTabPage(primaryUrl, secondaryUrl, this); tabPage->setActive(false); tabPage->setPlacesSelectorVisible(m_placesSelectorVisible); connect(tabPage, &DolphinTabPage::activeViewChanged, this, &DolphinTabWidget::activeViewChanged); connect(tabPage, &DolphinTabPage::activeViewUrlChanged, this, &DolphinTabWidget::tabUrlChanged); int newTabIndex = -1; if (tabPlacement == AfterCurrentTab) { newTabIndex = currentIndex() + 1; } insertTab(newTabIndex, tabPage, QIcon() /* loaded in tabInserted */, tabName(tabPage)); if (focusWidget) { // The DolphinViewContainer grabbed the keyboard focus. As the tab is opened // in background, assure that the previous focused widget gets the focus back. focusWidget->setFocus(); } } void DolphinTabWidget::openDirectories(const QList& dirs, bool splitView) { Q_ASSERT(dirs.size() > 0); QList::const_iterator it = dirs.constBegin(); while (it != dirs.constEnd()) { const QUrl& primaryUrl = *(it++); const QPair indexInfo = indexByUrl(primaryUrl); const int index = indexInfo.first; const bool isInPrimaryView = indexInfo.second; if (index >= 0) { setCurrentIndex(index); const auto tabPage = tabPageAt(index); if (isInPrimaryView) { tabPage->primaryViewContainer()->setActive(true); } else { tabPage->secondaryViewContainer()->setActive(true); } + // BUG: 417230 + // Required for updateViewState() call in openFiles() to work as expected + // If there is a selection, updateViewState() calls are effectively a no-op + tabPage->activeViewContainer()->view()->clearSelection(); continue; } if (splitView && (it != dirs.constEnd())) { const QUrl& secondaryUrl = *(it++); openNewActivatedTab(primaryUrl, secondaryUrl); } else { openNewActivatedTab(primaryUrl); } } } void DolphinTabWidget::openFiles(const QList& files, bool splitView) { Q_ASSERT(files.size() > 0); // Get all distinct directories from 'files' and open a tab // for each directory. If the "split view" option is enabled, two // directories are shown inside one tab (see openDirectories()). QList dirs; foreach (const QUrl& url, files) { const QUrl dir(url.adjusted(QUrl::RemoveFilename)); if (!dirs.contains(dir)) { dirs.append(dir); } } const int oldTabCount = count(); openDirectories(dirs, splitView); const int tabCount = count(); // Select the files. Although the files can be split between several // tabs, there is no need to split 'files' accordingly, as // the DolphinView will just ignore invalid selections. - for (int i = oldTabCount; i < tabCount; ++i) { + for (int i = 0; i < tabCount; ++i) { DolphinTabPage* tabPage = tabPageAt(i); tabPage->markUrlsAsSelected(files); tabPage->markUrlAsCurrent(files.first()); + if (i < oldTabCount) { + // Force selection of file if directory was already open, BUG: 417230 + tabPage->activeViewContainer()->view()->updateViewState(); + } } } void DolphinTabWidget::closeTab() { closeTab(currentIndex()); } void DolphinTabWidget::closeTab(const int index) { Q_ASSERT(index >= 0); Q_ASSERT(index < count()); if (count() < 2) { // Close Dolphin when closing the last tab. parentWidget()->close(); return; } DolphinTabPage* tabPage = tabPageAt(index); emit rememberClosedTab(tabPage->activeViewContainer()->url(), tabPage->saveState()); removeTab(index); tabPage->deleteLater(); } void DolphinTabWidget::activateTab(const int index) { if (index < count()) { setCurrentIndex(index); } } void DolphinTabWidget::activateLastTab() { setCurrentIndex(count() - 1); } void DolphinTabWidget::activateNextTab() { const int index = currentIndex() + 1; setCurrentIndex(index < count() ? index : 0); } void DolphinTabWidget::activatePrevTab() { const int index = currentIndex() - 1; setCurrentIndex(index >= 0 ? index : (count() - 1)); } void DolphinTabWidget::slotPlacesPanelVisibilityChanged(bool visible) { // The places-selector from the URL navigator should only be shown // if the places dock is invisible m_placesSelectorVisible = !visible; const int tabCount = count(); for (int i = 0; i < tabCount; ++i) { DolphinTabPage* tabPage = tabPageAt(i); tabPage->setPlacesSelectorVisible(m_placesSelectorVisible); } } void DolphinTabWidget::restoreClosedTab(const QByteArray& state) { openNewActivatedTab(); currentTabPage()->restoreState(state); } void DolphinTabWidget::detachTab(int index) { Q_ASSERT(index >= 0); QStringList args; const DolphinTabPage* tabPage = tabPageAt(index); args << tabPage->primaryViewContainer()->url().url(); if (tabPage->splitViewEnabled()) { args << tabPage->secondaryViewContainer()->url().url(); args << QStringLiteral("--split"); } args << QStringLiteral("--new-window"); const QString command = QStringLiteral("dolphin %1").arg(KShell::joinArgs(args)); KRun::runCommand(command, this); closeTab(index); } void DolphinTabWidget::openNewActivatedTab(int index) { Q_ASSERT(index >= 0); const DolphinTabPage* tabPage = tabPageAt(index); openNewActivatedTab(tabPage->activeViewContainer()->url()); } void DolphinTabWidget::tabDropEvent(int index, QDropEvent* event) { if (index >= 0) { DolphinView* view = tabPageAt(index)->activeViewContainer()->view(); view->dropUrls(view->url(), event, view); } } void DolphinTabWidget::tabUrlChanged(const QUrl& url) { const int index = indexOf(qobject_cast(sender())); if (index >= 0) { tabBar()->setTabText(index, tabName(tabPageAt(index))); if (tabBar()->isVisible()) { tabBar()->setTabIcon(index, QIcon::fromTheme(KIO::iconNameForUrl(url))); } else { // Mark as dirty, actually load once the tab bar actually gets shown tabBar()->setTabIcon(index, QIcon()); } // Emit the currentUrlChanged signal if the url of the current tab has been changed. if (index == currentIndex()) { emit currentUrlChanged(url); } } } void DolphinTabWidget::currentTabChanged(int index) { // last-viewed tab deactivation if (DolphinTabPage* tabPage = tabPageAt(m_lastViewedTab)) { tabPage->setActive(false); } DolphinTabPage* tabPage = tabPageAt(index); DolphinViewContainer* viewContainer = tabPage->activeViewContainer(); emit activeViewChanged(viewContainer); emit currentUrlChanged(viewContainer->url()); tabPage->setActive(true); m_lastViewedTab = index; } void DolphinTabWidget::tabInserted(int index) { QTabWidget::tabInserted(index); if (count() > 1) { // Resolve all pending tab icons for (int i = 0; i < count(); ++i) { if (tabBar()->tabIcon(i).isNull()) { tabBar()->setTabIcon(i, QIcon::fromTheme(KIO::iconNameForUrl(tabPageAt(i)->activeViewContainer()->url()))); } } tabBar()->show(); } emit tabCountChanged(count()); } void DolphinTabWidget::tabRemoved(int index) { QTabWidget::tabRemoved(index); // If only one tab is left, then remove the tab entry so that // closing the last tab is not possible. if (count() < 2) { tabBar()->hide(); } emit tabCountChanged(count()); } QString DolphinTabWidget::tabName(DolphinTabPage* tabPage) const { if (!tabPage) { return QString(); } QString name = tabPage->activeViewContainer()->caption(); // Make sure that a '&' inside the directory name is displayed correctly // and not misinterpreted as a keyboard shortcut in QTabBar::setTabText() return name.replace('&', QLatin1String("&&")); } QPair DolphinTabWidget::indexByUrl(const QUrl& url) const { for (int i = 0; i < count(); i++) { const auto tabPage = tabPageAt(i); if (url == tabPage->primaryViewContainer()->url()) { return qMakePair(i, true); } if (tabPage->splitViewEnabled() && url == tabPage->secondaryViewContainer()->url()) { return qMakePair(i, false); } } return qMakePair(-1, false); } diff --git a/src/org.kde.dolphin.appdata.xml b/src/org.kde.dolphin.appdata.xml index c7a04e3b7..c80fe81fa 100644 --- a/src/org.kde.dolphin.appdata.xml +++ b/src/org.kde.dolphin.appdata.xml @@ -1,595 +1,597 @@ org.kde.dolphin.desktop CC0-1.0 GPL-2.0+ Dolphin دولفين Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin ഡോൾഫിൻ Dolphin Dolphin Dolphin Dolphin ਡਾਲਫਿਨ Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Dolphin Делфин Dolphin Делфин Dolphin Dolphin Dolphin Dolphin xxDolphinxx Dolphin Dolphin File Manager مدير ملفات Xestor de ficheros Upravitelj datoteka Gestor de fitxers Gestor de fitxers Správce souborů Filhåndtering Dateiverwaltung Διαχειριστής αρχείων File Manager Administrador de archivos Failihaldur Fitxategi-kudeatzailea Tiedostonhallinta Gestionnaire de fichier Xestor de ficheiros מנהל קבצים Fájlkezelő Gerente de File Pengelola File Gestore file 파일 관리자 Failų tvarkytuvė ഫയല്‍ കാര്യസ്ഥന്‍ Filbehandler Dateipleger Bestandsbeheerder Filhandsamar ਫਾਇਲ ਮੈਨੇਜਰ Zarządzanie plikami Gestor de Ficheiros Gerenciador de arquivos Gestionar de fișiere Диспетчер файлов Správca súborov Upravljalnik datotek Менаџер фајлова Menadžer fajlova Менаџер фајлова Menadžer fajlova Filhanterare Dosya Yöneticisi Програма для керування файлами xxFile Managerxx 文件管理器 檔案管理員

Dolphin is a lightweight file manager. It has been designed with ease of use and simplicity in mind, while still allowing flexibility and customisation. This means that you can do your file management exactly the way you want to do it.

دولفين هو مدير ملفات خفيف. صُمِّم دولفين مع أخذ سهولة الاستخدام والبساطة بعين الاعتبار، مع السماح بالمرونة والتخصيص. يعني هذا أنه يمكنك إدارة ملفاتك كما تريد تمامًا.

Dolphin ye un xestor de ficheros llixeru. Diseñóse cola cenciellez y facilidá d'usu en mente, al empar que permite flexibilidá y personalización. Esto quier dicir que pues facer la xestión de ficheros del mou exautu que quieras.

Dolphinje lagan file manager. On je bio dizajniran sa lakoćom korišćenja i jednostavnosti u vidu, još omogućavajući fleksibilnost i prilagođavanje. To znači da možete da radite svoje upravljanje datotekama onako kako želite da to uradi.

El Dolphin és un gestor de fitxers lleuger. S'ha dissenyat pensant a facilitar el seu ús i que sigui simple, permetent la flexibilitat i la personalització. Això vol dir que podeu fer la gestió dels vostres fitxers de la manera exacta com ho vulgueu fer.

El Dolphin és un gestor de fitxers lleuger. S'ha dissenyat pensant a facilitar el seu ús i que siga simple, permetent la flexibilitat i la personalització. Això vol dir que podeu fer la gestió dels vostres fitxers de la manera exacta com ho vulgueu fer.

Dolphin er letvægtsfilhåndtering. Den er blevet designet med henblik på brugervenlighed og simpelhed, mens fleksibilitet og tilpasning stadig er muligt. Det betyder at du klare din filhåndtering nøjagtig på den måde du vil gøre det.

Dolphin ist ein schlankes Programm zur Dateiverwaltung. Es wurde mit dem Ziel entwickelt, einfach in der Anwendung, dabei aber auch flexibel und anpassungsfähig zu sein. Sie können daher Ihre Dateiverwaltungsaufgaben genau nach Ihren Bedürfnissen ausführen.

Το Dolphin είναι ένας ελαφρύς διαχειριστής αρχείων. Έχει σχεδιαστεί με φιλοσοφία την απλότητα για ευκολία στη χρήση, ενώ επιτρέπει ευελιξία και προσαρμογές. Αυτό σημαίνει ότι μπορείτε να διαχειριστείτε τα αρχεία σας με τον τρόπο που εσείς θέλετε.

Dolphin is a lightweight file manager. It has been designed with ease of use and simplicity in mind, while still allowing flexibility and customisation. This means that you can do your file management exactly the way you want to do it.

Dolphin es un administrador de archivos ligero. Se ha diseñado teniendo en cuenta la facilidad de uso y la simplicidad, así como la flexibilidad y la personalización. Esto significa que el usuario puede administrar los archivos exactamente de la manera que prefiera.

Dolphin on vähest koormust tekitav failihaldur. Selle loomisel on peetud silmas kasutamise hõlpsust ja lihtsust, ometi pakub see suurt paindlikkust ja oma käe järgi kohandamise võimalusi. Sel moel saab faile hallata just, nagu ise soovid.

Dolphin pisu arineko fitxategi-kudeatzaile bat da. Erabilera erraza eta sinpletasuna gogoan diseinatua izan da, ordea, malgutasuna eta norbere nahietara egokitzea onartzen du. Honek esan nahi du fitxategi-kudeatzea zuk nahi duzun eran egin dezakezula.

Dolphin on kevyt tiedostonhallinta. Se on suunniteltu helppokäyttöiseksi ja yksinkertaiseksi, mutta silti joustavaksi ja mukautettavaksi. Voit siis hallita tiedostojasi juuri niin kuin haluat.

Dolphin est un gestionnaire de fichier léger. Il a été conçu en gardant à l'esprit la simplicité et l'aisance à l'usage, tout en permettant flexibilité et personnalisation. Cela signifie que vous pouvez gérer vos fichiers de la manière exacte que vous voulez.

Dolphin é un xestor de ficheiros lixeiro. Deseñouse pensando na facilidade de uso e a simplicidade, pero permitindo flexibilidade e personalización. Noutras palabras, permítelle xestionar os seus ficheiros do xeito que máis lle agrade.

‏Dolphin הוא מנהל קבצים קל־משקל. הוא עוצב לקלות שימוש ופשטות, תוך כדי אפשור גמישות והתאמה אישית. זה אומר שתוכל לנהל את קבציך איך שאתה רוצה לעשות זאת.

A Dolphin egy pehelysúlyú fájlkezelő. Az egyszerű használatot és az egyszerűséget szem előtt tartva tervezték, miközben továbbra is lehetővé teszi a rugalmasságot és a testre szabhatóságot. Ez azt jelenti, hogy pontosan oly módon végezheti a fájlkezelést, ahogy csak akarja.

Dolphin es un gerente de file legier. Il ha essite designate con facilitate de uso e simplicitate in le mente, mentre il permitte ancora flexibilitate e personalisation. Isto significa que tu pote facer le gerente de file exactemente como tu lo vole.

Dolphin adalah pengelola file yang ringan. Ini telah dirancang dengan kemudahan penggunaan dan kesederhanaan dalam hal, sementara masih memungkinkan fleksibilitas dan kustomisasi. Ini berarti kamu bisa melakukan pengelolaan file-mu persis seperti yang kamu inginkan.

Dolphin è un gestore file leggero. È stato progettato per essere facile da utilizzare e pensando alla semplicità, garantendo al contempo flessibilità e personalizzazione. Ciò significa che puoi gestire i tuoi file come meglio desideri.

Dolphin은 가벼운 파일 관리자입니다. 사용 편의성과 단순함을 염두에 두고 설계되었으며, 유연성과 사용자 지정을 여전히 허용합니다. 즉, 파일 관리를 원하는 방식으로 정확하게 수행할 수 있습니다.

Dolphin yra supaprastinta failų tvarkytuvė. Ji buvo sukurta taip, kad ją būtų lengva naudoti, susitelkiant į paprastumą, tačiau įgalinant lankstumą ir tinkinimą. Tai reiškia, kad galite tvarkyti failus būtent taip, kaip norite.

ഡോൾഫിൻ ഒരു ഭാരം കുറഞ്ഞ ഫയൽ മാനേജറാണ്. ഇത് നിർമ്മിച്ചിരിക്കുന്നത് ഉപയോഗിക്കുന്നതിനുള്ള എളുപ്പത്തിനും , മാനസികമായിയുള്ള എളുപ്പത്തിനുമാണ്, ഒപ്പം തന്നെ അഭിരുചിക്കനുസൃതമാക്കുന്നതിനും വഴക്കം നൽകുന്നതിനും അനുവദിക്കുന്നു. അതായത് നിങ്ങൾക്ക് നിങ്ങളുടെ ഫയലുകൾ എങ്ങനെയൊക്കെ കൈകാര്യം ചെയ്യണോ അങ്ങനെ കൈകാര്യം ചെയ്യാവുന്നതാണ്.

Dolphin er en lettvekts filbehandler. Den er laget for å være enkel og lett å bruke, samtidig som den er fleksibel og kan tilpasses. Det betyr at du kan utføre dine filbehandlingsoppgaver akkurat slik du vil gjøre det.

Dolphin is en slank Dateipleger. Dat wöör buut mit de Idee vun't eenfache Bedenen vör Ogen, bides dat liekers flexibel un topassbor wesen schull. Du kannst Dien Dateien also jüst so plegen, as Du dat wullt.

Dolphin is een lichtgewicht bestandsbeheerder. Het is ontworpen met gebruiksgemak en eenvoud in gedachte en staat toch flexibiliteit en aan te passen toe. Dit betekent dat u uw bestandsbeheer kunt doen precies op de manier zoals u dat wilt.

Dolphin er ein lettvekts filhandsamar. Han er laga for å vera enkel å bruka, samtidig som han er fleksibel og kan tilpassast, slik at du kan gjera filhandsamingsoppgåvene nett slik du ønskjer.

Dolphin jest lekkim programem do zarządzania plikami. Został on opracowany mając na uwadze łatwość i prostotę obsługi, zapewniając jednocześnie elastyczność i możliwość dostosowania. Oznacza to, że można urządzić zarządzanie plikami w dokładnie taki sposób w jaki jest to pożądane.

O Dolphin é um gestor de ficheiros leve. Foi desenhado com a facilidade de uso e simplicidade em mente, permitindo à mesma a flexibilidade e personalização. Isto significa que poderá fazer a sua gestão de ficheiros exactamente da forma que deseja.

Dolphin é um gerenciador de arquivos leve e fácil de usar. Foi projetado para ser simples e ao mesmo tempo manter a flexibilidade e personalização. Isso significa que você poderá gerenciar seus arquivos da forma que desejar.

Dolphin — это упрощённый диспетчер файлов. Он создавался как лёгкий в использовании, но в то же время является гибким и расширяемым.

Dolphin je odľahčený správca súborov. Bol navrhnutý na jednoduché použitie a jednoduchosť, ale s možnosťami flexibility a prispôsobenia. To znamená, že môžete vykonávať správu súborov presne tak, ako chcete.

Dolphin je enostaven upravljalnik datotek. Bil je zasnovan kot enostaven in preprost, vseeno pa ostaja prilagodljiv. To pomeni, da lahko upravljanje datotek izvajate točno tako kot želite.

Делфин је лагани менаџер фајлова. Пројектован је да буде лак за употребу и једноставан, а да ипак омогућава флексибилност и прилагођавање. То значи да ће моћи да баратате фајловима тачно онако како бисте желели.

Dolphin je lagani menadžer fajlova. Projektovan je da bude lak za upotrebu i jednostavan, a da ipak omogućava fleksibilnost i prilagođavanje. To znači da će moći da baratate fajlovima tačno onako kako biste želeli.

Делфин је лагани менаџер фајлова. Пројектован је да буде лак за употребу и једноставан, а да ипак омогућава флексибилност и прилагођавање. То значи да ће моћи да баратате фајловима тачно онако како бисте желели.

Dolphin je lagani menadžer fajlova. Projektovan je da bude lak za upotrebu i jednostavan, a da ipak omogućava fleksibilnost i prilagođavanje. To znači da će moći da baratate fajlovima tačno onako kako biste želeli.

Dolphin är en lättviktig filhanterare. Den har konstruerats med användbarhet och enkelhet i åtanke, men ändå tillåta flexibilitet och anpassning. Det betyder att du kan hantera filer exakt på det sätt som du vill göra det.

Dolphin hafif bir dosya yöneticisidir. Kolay kullanım ve basitliğin yanı sıra esneklik ve özelleştirilebilme de akılda tutularak geliştirilmiştir. Bu da dosya yöneticisini tam da istediğiniz gibi kullanabileceğiniz anlamına gelir.

Dolphin — невибаглива до ресурсів програма для керування файлами. Її створено простою у користуванні і гнучкою у налаштовуванні. Це означає, що ви можете зробити керування файлами саме таким, як вам потрібно.

xxDolphin is a lightweight file manager. It has been designed with ease of use and simplicity in mind, while still allowing flexibility and customisation. This means that you can do your file management exactly the way you want to do it.xx

Dolphin 是一个轻量的文件管理器。它设计时考虑了简单易用,但仍然保持了灵活性和定制性。这意味着您可以用完全属于您的方式来管理文件。

Dolphin 是一套輕量級的檔案管理員。它設計的理念是易用與簡單,但仍然保持足夠的彈性。這表示您可以用您想要使用的方式來管理您的檔案。

Features:

المزايا:

Carauterístiques:

Svojstva:

Característiques:

Característiques:

Vlastnosti:

Funktioner:

Funktionen:

Χαρακτηριστικά:

Features:

Características:

Omadused:

Eginbideak:

Ominaisuudet:

Fonctionnalités :

Funcionalidades:

תכונות:

Szolgáltatások:

Characteristicas:

Fitur:

Funzionalità:

기능:

Ypatybės:

വിശേഷതകൾ:

Egenskaper:

Markmalen:

Mogelijkheden:

Funksjonar:

ਲੱਛਣ:

Możliwości:

Funcionalidades:

Funcionalidades:

Caracteristici:

Возможности:

Funkcie:

Zmožnosti:

Могућности:

Mogućnosti:

Могућности:

Mogućnosti:

Funktioner:

Özellikler:

Можливості:

xxFeatures:xx

功能:

功能:

  • Navigation (or breadcrumb) bar for URLs, allowing you to quickly navigate through the hierarchy of files and folders.
  • Navigacijska (ili mrvična) traka za URL, dopušta vam da se brzo krećete kroz hijerarhiju datoteka i direktorija.
  • Barra de navegació (o fil d'Ariadna) pels URL, permetent una navegació ràpida per la jerarquia dels fitxers i carpetes.
  • Barra de navegació (o fil d'Ariadna) pels URL, permetent una navegació ràpida per la jerarquia dels fitxers i carpetes.
  • Navigationsbjælke (eller brødkrumme-bjælke) til URL'er, lader dig navigere hurtigt igennem hierarkiet af filer og mapper.
  • Navigationsleiste für Adressen (auch editierbar), mit der Sie schnell durch die Hierarchie der Dateien und Ordner navigieren können.
  • Η γραμμή πλοήγησης (ή ιχνηλάτησης) για URL, σας επιτρέπει να πλοηγηθείτε γρήγορα μέσα από την ιεραρχία αρχείων και φακέλων.
  • Navigation (or breadcrumb) bar for URLs, allowing you to quickly navigate through the hierarchy of files and folders.
  • barra de navegación (o de ruta completa) para URL que permite navegar rápidamente a través de la jerarquía de archivos y carpetas.
  • Liikumisriba IRL-idele, mis lubab kiiresti liigelda failide ja kataloogide hierarhias.
  • Nabigatzeko (edo ogi-apurren) barra URLentzako, fitxategi eta karpeten hierarkian zehar azkar nabigatzeko aukera ematen dizuna.
  • Osoiterivi, jonka avulla siirtyminen tiedostojen ja kansioiden hierarkiassa on nopeaa.
  • Barre de navigation (ou fil d'Ariane) permettant de naviguer rapidement dans la hiérarchie de fichiers et de dossiers.
  • Barra de navegación (ou ronsel) para enderezos URL, que lle permite navegar rapidamente pola xerarquía de ficheiros e cartafoles.
  • Navigációs (vagy webmorzsa) sáv az URL-ekhez, amely lehetővé teszi a fájlok és mappák hierarchiáján keresztüli gyors navigációt.
  • Barra de navigation (o "breadcrumb") pro URLs, que il permitte te navigar rapidemente a transverso del hierarchia de files e dossieres.
  • Bilah navigasi (atau breadcrumb) untuk URL-URL, memungkinkan kamu secara cepat bernavigasi melalui hirerarki file-file dan folder-folder.
  • La barra di navigazione per gli URL, che ti consente di navigare rapidamente attraverso la struttura di file e cartelle.
  • URL에 대한 탐색(또는 이동 경로) 표시줄을 사용하면 파일 및 폴더의 계층 구조를 빠르게 탐색할 수 있습니다.
  • Naršymo (arba trupinių) juosta, skirta URL adresams, leidžianti greitai naršyti per failų ar aplankų hierarchiją.
  • ഫയലുകളുടെയും അറകളുടെയും ശ്രേണി കണ്ടുപിടിക്കുന്നതിന് URL കൾക്ക് നാവിഗേഷൻ (അല്ലെങ്കിൽ വഴി കാട്ടുന്നതിനുള്ള) സ്ഥലം.
  • Navigasjonslinje (brødsmulelinje) for URL-er slik at du raskt kan navigere gjennom hierarkiet av filer og mapper.
  • Steed- (oder Krömelspoor-)Balken för URLs, mit de Du Di fix dör de Hierarchie ut Dateien un Ornern bewegen kannst
  • Navigatie- (of broodkruimel)balk voor URL's, waarmee u snel kunt navigeren door de hiërarchie van bestanden en mappen.
  • Navigasjonslinje (brødsmulelinje), slik at du raskt kan navigera gjennom hierarkiet av filer og mapper.
  • Pasek nawigacji (lub okruchy chleba) dla adresów URL, umożliwiające szybkie przechodzenie w hierarchii plików i katalogów.
  • Barra de navegação dos URL's, que lhe permite navegar rapidamente pela hierarquia de ficheiros e pastas.
  • Barra de navegação de URLs, permitindo-lhe navegar rapidamente pela hierarquia de arquivos e pastas.
  • Адресная строка позволяет быстро перемещаться по дереву папок;
  • Navigačná lišta pre URL, umožňujúca vám rýchlu navigáciu cez hierarchiu súborov a priečinkov.
  • Vrstica za krmarjenje po naslovih URL, ki omogoča hitro krmarjenje po hierarhiji datotek in map.
  • Навигациона трака (или мрвице) за УРЛ‑ове, преко које се можете брзо кретати кроз стабло фајлова и фасцикли.
  • Navigaciona traka (ili mrvice) za URL‑ove, preko koje se možete brzo kretati kroz stablo fajlova i fascikli.
  • Навигациона трака (или мрвице) за УРЛ‑ове, преко које се можете брзо кретати кроз стабло фајлова и фасцикли.
  • Navigaciona traka (ili mrvice) za URL‑ove, preko koje se možete brzo kretati kroz stablo fajlova i fascikli.
  • Navigeringsrad (eller länkstig) för webbadresser, som låter dig snabbt navigera igenom hierarkin av filer och kataloger.
  • Dosya ve dizinlerin sıralı dizilerinde hızlıca gezinmenize imkan veren adresler için gezinti (veya işaret) çubuğu.
  • Панель навігації (звичайний режим і режим послідовної навігації) для адрес надає вам змогу швидко пересуватися ієрархією файлів та каталогів.
  • xxNavigation (or breadcrumb) bar for URLs, allowing you to quickly navigate through the hierarchy of files and folders.xx
  • URL 的导航栏(面包屑导航),允许您快速地在文件和文件夹的层次结构间跳转。
  • 網址導覽列讓您可以快速瀏覽檔案與資料夾。
  • Supports several different kinds of view styles and properties and allows you to configure the view exactly how you want it.
  • يدعم العديد من الأنواع المختلفة من الخصائص وأنماط العرض ويسمح لك بضبط العرض كما تريد تمامًا.
  • Sofita estilos y propiedaes de vista diferentes, y permítete configurar la vista exautamente como quieras.
  • Dopušta vište vrsta stilova pogleda i svojstava i dopšta vam da konfigurišete pogled baš kako želite.
  • Accepta diferents classes diverses d'estils de visualització i propietats i us permet configurar la visualització exactament com la vulgueu.
  • Accepta diferents classes diverses d'estils de visualització i propietats i vos permet configurar la visualització exactament com la vulgueu.
  • Understøtter flere forskellige slags visninger og egenskaber og lader dig konfigurere visningen nøjagtig som du vil have den.
  • Unterstützt mehrere unterschiedliche Arten von Ansichtsstilen und Eigenschaften und erlaubt es Ihnen, die Ansichten genau nach Ihren Bedürfnissen einzustellen.
  • Υποστηρίζει πολλά διαφορετικά είδη στιλ και ιδιότητες επισκόπησης και σας επιτρέπει να διαμορφώσετε την επισκόπηση ακριβώς όπως τη θέλετε.
  • Supports several different kinds of view styles and properties and allows you to configure the view exactly how you want it.
  • Admite varios tipos diferentes de estilos de vista y propiedades y permite configurar la vista exactamente como prefiera el usuario.
  • Võimalus kasutada mitut laadi vaatestiile ja -omadusi ning neid igati enda käe järgi seadistada.
  • Hainbat mota desberdineko ikuspegi estilo eta propietate onartzen ditu eta ikuspegia zehazki zuk nahi duzun gisan konfiguratzeko aukera ematen dizu.
  • Tukee useita erilaisia näkymätyylejä ja -ominaisuuksia, ja mahdollistaa näkymän muokkaamisen mieleisekseen.
  • Prend en charge plusieurs types de styles d'affichage et de propriété et vous permet de configurer l'affichage de la manière exacte que vous voulez.
  • É compatíbel con varios estilos e propiedades de vista distintos, e permítelle configurar a vista como mellor lle pareza.
  • Számos különféle nézetstílus fajtát és tulajdonságot támogat, valamint lehetővé teszi a nézet beállítását pontosan olyanra, ahogy azt látni szeretné.
  • Il supporta multe differente typos de stilos de vista e proprietates e il permitte te configurar le vista exactemente como tu vole.
  • Mendukung beberapa jenis gaya tampilan dan properti yang berbeda dan memungkinkanmu untuk mengonfigurasi tampilan persis seperti yang kamu inginkan.
  • Supporta diversi stili di visualizzazione e proprietà e ti consente di configurare la vista come desideri.
  • 여러 종류의 보기 스타일 및 속성을 지원하며 원하는 방식으로 보기를 구성할 수 있습니다.
  • Palaiko kelias įvairias stilių ir savybių rūšis ir leidžia konfigūruoti rodinį būtent taip, kaip norite.
  • നിങ്ങൾക്ക് ഇഷ്ടമുള്ള രീതിയിൽ കാണുന്നതിന് ആവശ്യമായിട്ടുള്ള വിവിധ അലങ്കാര രീതികള്‍ക്ക് പിന്തുണ നൽകുന്നു.
  • Støtter flere forskjellige visningsstiler og kan sette opp visningen akkurat slik du vil ha den.
  • Ünnerstütt en Reeg verscheden Ansichtstilen un -egenschappen un lett Di de Ansicht jüst so topassen, as Du dat bruukst.
  • Ondersteunt een aantal verschillende soorten stijlen van weergave en eigenschappen en biedt u de mogelijkheid de weergave in te stellen precies zoals u dat wilt.
  • Støttar fleire ulike visingsstilar, og du kan setja opp visinga nett slik du vil ha ho.
  • Obsługa wielu różnych rodzajów stylów widoków i właściwości oraz możliwość ustawienia widoku dopasowanego do potrzeb.
  • Suposta diferentes tipos de vistas e propriedades e permite-lhe configurar cada vista exactamente como a deseja.
  • Suporte a diferentes tipos de visualização, permitindo-lhe configurar cada modo de exibição da forma que desejar.
  • Несколько различных визуальных представлений папок, каждое из которых можно настроить по своему вкусу;
  • Podporuje niekoľko rôznych typov štýlov zobrazenia a vlastností a umožňuje vám nastaviť pohľad presne tak, ako chcete.
  • Podpira številne vrste slogov in lastnosti pogledov ter omogoča, da pogled nastavite točno tako kot vam ustreza.
  • Неколико начина приказа, са својствима које можете подесити по жељи.
  • Nekoliko načina prikaza, sa svojstvima koje možete podesiti po želji.
  • Неколико начина приказа, са својствима које можете подесити по жељи.
  • Nekoliko načina prikaza, sa svojstvima koje možete podesiti po želji.
  • Stöder flera olika sorters visningsstilar och egenskaper och låter dig anpassa visningen exakt som du vill ha den.
  • Bir çok farklı görünüm tipini ve özelliğini destekler ve görünümü tam istediğiniz gibi yapılandırmanıza izin verir.
  • Підтримка декількох різних типів та параметрів перегляду надає вам змогу налаштувати перегляд каталогів саме так, як вам це потрібно.
  • xxSupports several different kinds of view styles and properties and allows you to configure the view exactly how you want it.xx
  • 支持多种不同的视图风格和属性并且允许您用您想要的方式配置视图。
  • 網址導覽列讓您可以快速瀏覽檔案與資料夾。
  • Split view, allowing you to easily copy or move files between locations.
  • العرض المقسوم، يسمح لك بنسخ ونقل الملفات بين مكانين بسهولة.
  • La vista dixebrada permítete copiar o mover ficheros de mou fácil ente allugamientos.
  • Razdvaja pogled, dopuštajući lako kopiranje ili pomijeranje datoteka između lokacija
  • Divisió de visualització, permetent copiar o moure fitxers fàcilment entre les ubicacions.
  • Divisió de visualització, permetent copiar o moure fitxers fàcilment entre les ubicacions.
  • Opdelt visning lader dig kopiere filer mellem placeringer på en nem måde.
  • Geteilte Ansichten, damit können Sie einfach Daten zwischen Orten kopieren oder verschieben.
  • Η διαίρεση επισκόπησης, σάς επιτρέπει με ευκολία να αντιγράφετε ή να μετακινείτε αρχεία μεταξύ διαφορετικών θέσεων.
  • Split view, allowing you to easily copy or move files between locations.
  • Dividir vista, para poder copiar o mover archivos fácilmente entre distintas ubicaciones.
  • Vaate poolitamise võimalus, mis muudab väga lihtsaks failide ühest kohast teise kopeerimise või liigutamise.
  • Ikuspegi zatitua, fitxategiak kokapen batetik bestera erraz kopiatu edo mugitzeko.
  • Näkymän puolitus, joka helpottaa tiedostojen kopiointia ja siirtämistä paikasta toiseen.
  • Affichage divisé, permettant de facilement copier ou déplacer des fichiers dans les différents emplacements.
  • Vista dividida, que lle permite copiar ou mover ficheiros facilmente entre dous lugares.
  • Osztott nézet, amely lehetővé teszi a fájlok könnyű másolását és áthelyezését a helyek között.
  • Scinde vista, il permitte te copiar o mover facilemente files inter locationes.
  • Tampilan belah, memungkinkanmu untuk menyalin atau memindah file antar lokasi dengan mudah.
  • La vista divisa, che ti consente di copiare o spostare i file tra le diverse posizioni in maniera semplice.
  • 분할 보기를 통해 위치간에 파일을 쉽게 복사하거나 이동할 수 있습니다.
  • Padalytas rodinys, leidžiantis lengvai kopijuoti ar perkelti failus tarp įvairių vietų.
  • എളുപ്പത്തിൽ ഫയലുകൾ പക‍‍ർത്തുന്നതിനും നീക്കുന്നതിനും സഹായിക്കുന്ന വേർതിരിച്ച കാഴ്ച
  • Delt visning, så du lett kan kopiere eller flytte filer mellom steder.
  • Deelt Ansicht, mit De Du Dateien eenfach twischen Steden koperen oder bewegen kannst.
  • Gesplitst beeld, waarmee u gemakkelijk bestanden kunt kopiëren of verplaatsen tussen locaties.
  • Delt vising, så du lett kan kopiera eller flytta filer mellom mapper.
  • Widok podzielony, umożliwiający łatwe kopiowane lub przenoszenie plików pomiędzy położeniami.
  • Uma vista dividida, que lhe permite facilmente copiar ou mover os ficheiros entre locais.
  • Um modo de exibição dividido, permitindo-lhe copiar ou mover arquivos facilmente entre locais.
  • Двухпанельный режим, в котором удобно копировать и перемещать файлы между разными папками;
  • Rozdelený pohľad, umožňuje vám jednoducho kopírovať alebo presúvať súbory medzi umiestneniami.
  • Razdeljeni pogled vam omogoča enostavno kopiranje ali premikanje datotek med mesti.
  • Подељени приказ, за лако копирање и премештање фајлова између локација.
  • Podeljeni prikaz, za lako kopiranje i premeštanje fajlova između lokacija.
  • Подељени приказ, за лако копирање и премештање фајлова између локација.
  • Podeljeni prikaz, za lako kopiranje i premeštanje fajlova između lokacija.
  • Delad visning, som låter dig enkelt kopiera eller flytta filer mellan platser.
  • Dosyaları farklı konumlar arasında kolayca kopyalamaya ve taşımaya izin veren ayrık görünüm.
  • За допомогою режиму двопанельного розділеного перегляду ви зможе без проблем копіювати або пересувати файли між каталогами.
  • xxSplit view, allowing you to easily copy or move files between locations.xx
  • 拆分视图,让您可以方便地在不同位置间复制和移动文件。
  • 支援數個檢視模式,您也可以調整檢視模式的屬性。
  • Additional information and shortcuts are available as dock-able panels, allowing you to move them around freely and display exactly what you want.
  • تتوفر معلومات واختصارات إضافية كلوحات قابلة للرصف، مما يسمح لك بنقلها بحريّة وعرضها بالضبط كما تريد.
  • La información adicional y los atayos tán disponibles como paneles anclables que pues mover ande quieras y amosar como exautamente quieras.
  • Dodatne informacije i kratice su dostupne kao usidreni paneli, dopuštajući vam da se krećete slobodno i prikažete šta želite.
  • Hi ha informació addicional i dreceres disponibles com a plafons que es poden acoblar, permetent moure'ls lliurement i mostrar exactament el què vulgueu.
  • Hi ha informació addicional i dreceres disponibles com a plafons que es poden acoblar, permetent moure'ls lliurement i mostrar exactament el què vulgueu.
  • Yderligere information og genveje er tilgængelige som dokbare paneler, som lader dig flytte dem frit omkring og vise nøjagtigt det du vil have.
  • Zusätzliche Informationen und Kurzbefehle sind als andockbare Seitenleisten vorhanden, diese Leisten können Sie beliebig verschieben und in ihnen die gewünschten Informationen anzeigen lassen.
  • Πρόσθετες πληροφορίες και συντομεύσεις είναι διαθέσιμα ως προσαρτήσιμοι πίνακες, που σας επιτρέπουν να τα μετακινείτε ελεύθερα και να παρουσιάζετε ακριβώς αυτό που θέλετε.
  • Additional information and shortcuts are available as dock-able panels, allowing you to move them around freely and display exactly what you want.
  • Hay disponible información adicional y accesos rápidos en forma de paneles separables para que se puedan mover libremente a la vez que muestran exactamente lo que prefiera el usuario.
  • Lisateave ja otseteed dokitavate paneelidena, mida saab vabalt vajalikku kohta tõsta ja panna näitama just vajalikku teavet.
  • Informazio eta lasterbide osagarriak erabilgarri daude panel ainguragarrien bidez, haiek askatasun osoz mugitu ditzakezu eta zehazki nahi duzuna bistaratu.
  • Lisätiedoille ja oikoteille on paneelit, joita voi siirtää sekä näyttää ja piilottaa vapaasti.
  • Des informations supplémentaires et des raccourcis sont disponible comme panneaux ancrable librement déplaçable et affichant exactement ce que vous voulez.
  • Información adicional e atallos dispoñíbeis como paneis acoplábeis que pode colocar en calquera parte e mostrar como prefira.
  • További információk és gyorsbillentyűk érhetők el dokkolható panelekként, lehetővé téve azok szabad mozgatását, illetve pontosan úgy megjelenítve, ahogy szeretné.
  • Information additional e vias breve es disponibile como pannellos de basin (dock-panels), il permitte mover los liberemente e monstrar los exactemente como tu vole.
  • Informasi tambahan dan pintasan tersedia sebagai panel yang bisa di-dock, memungkinkanmu untuk memindahkannya secara bebas dan menampilkan apa yang kamu inginkan.
  • Informazioni aggiuntive e scorciatoie sono disponibili come pannelli agganciabili, che possono essere spostati liberamente e visualizzare esattamente ciò che desideri.
  • 추가 정보 및 바로 가기는 도킹 가능한 패널로 제공되므로 자유롭게 이동할 수 있고 원하는 대로 정확히 표시할 수 있습니다.
  • Papildoma informacija ir šaukiniai yra prieinami kaip pritvirtinami skydeliai, leidžiantys juos laisvai perkelinėti ir atvaizduoti būtent tai, ką norite.
  • നിങ്ങൾക്ക് ആവശ്യമായിട്ടുള്ള കുറുക്കുവഴികളും വിവരങ്ങളും എളുപ്പത്തിൽ തുറക്കാവുന്ന ഭാഗങ്ങളായി ലഭ്യമാണ്.
  • Mer informasjon og snarveier er tilgjengelige som dokkbare ruter, som du kan flytte fritt rundt og bruke til å vise akkurat hva du vil.
  • Bito-Infos un Leestekens laat sik as Paneels andocken, Du kannst ehr verschuven un se jüst dat wiesen laten, wat Du weten wullt.
  • Extra informatie en sneltoetsen zijn beschikbaar als vast te zetten panelen, die u vrij kunt verplaatsen en precies kunt tonen wat u wilt.
  • Tilleggsinformasjon og snarvegar er tilgjengelege som dokkbare ruter, som du kan flytta fritt rundt og bruka til å visa det du ønskjer.
  • Dodatkowe szczegóły i skróty dostępne jako dokowalne panele, umożliwiające ich dowolne przenoszenie i wyświetlanie dopasowane do potrzeb.
  • Estão disponíveis informações e atalhos adicionais como painéis acopláveis, permitindo-lhe movê-los à vontade e apresentar como desejar.
  • As informações e atalhos adicionais estão disponíveis na forma de painéis acopláveis, permitindo-lhe movê-los à vontade e apresentar como desejar.
  • Дополнительные сведения об элементах и ярлыки быстрого доступа в виде отдельных перемещаемых панелей;
  • Dodatočné informácie a skratky sú dostupné ako dokovateľné panely, umožňujúce vám ich voľný presun a zobrazenie presne tak, ako chcete.
  • Dodatne podrobnosti in bližnjice lahko vklopite kot sidrne pulte, ki jih lahko poljubno premikate in prikazujete.
  • Допунски подаци и пречице доступни су као усидриви панели, које можете поставити где вам одговара и подесити да приказују тачно оно што желите.
  • Dopunski podaci i prečice dostupni su kao usidrivi paneli, koje možete postaviti gde vam odgovara i podesiti da prikazuju tačno ono što želite.
  • Допунски подаци и пречице доступни су као усидриви панели, које можете поставити где вам одговара и подесити да приказују тачно оно што желите.
  • Dopunski podaci i prečice dostupni su kao usidrivi paneli, koje možete postaviti gde vam odgovara i podesiti da prikazuju tačno ono što želite.
  • Ytterligare information och genvägar är tillgängliga som dockningsbara paneler, vilket låter dig flytta omkring dem fritt och visa exakt vad du vill.
  • Ek bilgi ve kısayollar kilitlenebilen panolar olarak kullanılabilirler, bu sayede onları istediğiniz gibi taşıyabilir ve tam istediğiniz gibi görüntülenmelerini sağlayabilirsiniz.
  • За допомогою бічних пересувних панелей ви зможете отримувати додаткову інформацію та пересуватися каталогами. Ви можете розташувати ці панелі так, як вам це зручно, і наказати програмі показувати на них саме те, що вам потрібно.
  • xxAdditional information and shortcuts are available as dock-able panels, allowing you to move them around freely and display exactly what you want.xx
  • 额外信息,快捷键,可停靠面板,允许您自由地移动它们并且完全按照您想要的方式来显示。
  • 分割檢視讓您可以輕鬆複製或移動檔案。
  • Multiple tab support
  • دعم تعدّد الألسنة
  • Sofitu pa munches llingüetes
  • Podrška za više kartica
  • Admet pestanyes múltiples
  • Admet pestanyes múltiples
  • Podpora vícero karet
  • Understøttelse af flere faneblade
  • Unterstützung für Unterfenster
  • Υποστήριξη πολλαπλών καρτελών
  • Multiple tab support
  • Admite varias pestañas
  • Mitme kaardi kasutamise toetus.
  • Fitxen erabilera onartzen du
  • Useiden välilehtien tuki
  • Prise en charge des onglets multiples
  • Permite abrir varios separadores
  • תמיכה בכרטיסיות
  • Több lap támogatása
  • Supporto de scheda multiple
  • Dukungan multipel tab
  • Supporto di schede multiple
  • 다중 탭 지원
  • Daugelio kortelių palaikymas
  • അനേക ടാബുകളുടെ പിൻതുണ
  • Støtte for flere faner
  • Ünnerstütten för Paneels
  • Ondersteuning voor meerdere tabbladen
  • Støtte for fleire faner
  • ਬਹੁ ਟੈਬ ਸਹਿਯੋਗ
  • Obsługa wielu kart
  • Suporte para várias páginas
  • Suporte a várias abas
  • Suport pentru file multiple
  • Поддержка нескольких вкладок;
  • Podpora viacerých kariet
  • Podpora več zavihkom
  • Вишеструки језичци.
  • Višestruki jezičci.
  • Вишеструки језичци.
  • Višestruki jezičci.
  • Stöd för flera flikar
  • Çoklu sekme desteği
  • Підтримка роботи з вкладками.
  • xxMultiple tab supportxx
  • 多标签支持
  • 額外資訊與嵌入式面板捷徑讓您可以輕易顯示您常用的項目。
  • Informational dialogues are displayed in an unobtrusive way.
  • حواريات المعلومات تُعرَض بطريقة غير مُزعجة.
  • Los diálogos informativos amuésense d'un mou non intrusivu.
  • Informativni dijalozi su prikazani na nenametljiv način.
  • Els diàlegs informatius es mostren d'una manera no molesta.
  • Els diàlegs informatius es mostren d'una manera no molesta.
  • Informationsdialoger vises på en ikke-forstyrrende måde.
  • Informationen werden unaufdringlich angezeigt.
  • Ενημερωτικοί διάλογοι εμφανίζονται με μη παρεμβατικό τρόπο.
  • Informational dialogues are displayed in an unobtrusive way.
  • Los diálogos informativos se muestran de manera discreta.
  • Teavitavate dialoogide näitamine kasutajat liigselt ärritamata.
  • Informatzeko elkarrizketa-koadroak trabarik ez sortzeko eran bistaratzen dira.
  • Informatiiviset valintaikkunat näytetään niin, että ne eivät keskeytä kaikkea muuta toimintaa.
  • Les dialogues d'information sont affiché de manière discrète.
  • Os diálogos de información móstranse dunha maneira non intrusiva.
  • Az információs párbeszédablakok szerény módon vannak megjelenítve.
  • Dialogos de information es monstrate de modo non importun.
  • Dialog informasi ditampilkan dengan cara yang tidak mengganggu.
  • Le finestre informative sono visualizzate in modo molto discreto.
  • 정보 대화 상자는 눈에 거슬리지 않는 방식으로 표시됩니다.
  • Informaciniai dialogai yra rodomi neįkyriai.
  • വിവരങ്ങൾ അച്ചടക്കമുള്ള രീതിയിൽ ദൃശ്യമാകുന്നു.
  • Informasjonsdialoger vises på en lite påtrengende måte.
  • Informatschoondialogen kaamt Di nich in'n Weg.
  • Informatiedialogen worden op een prettige manier getoond.
  • Informasjonsdialogar vert viste på ein lite påtrengjande måte.
  • Pokazywanie informacyjnych okien dialogowych w nienatrętny sposób.
  • As janelas informativas são apresentadas de forma não-intrusiva.
  • As janelas informativas são apresentadas de forma não-intrusiva.
  • Ненавязчивый способ показа информационных диалогов;
  • Informačné dialógy sú zobrazené nevtieravým spôsobom.
  • Pogovorna okna s podrobnostmi so prikazana na nevsiljiv način.
  • Информативни дијалози који се ненаметљиво појављују.
  • Informativni dijalozi koji se nenametljivo pojavljuju.
  • Информативни дијалози који се ненаметљиво појављују.
  • Informativni dijalozi koji se nenametljivo pojavljuju.
  • Dialogrutor med information visas på ett diskret sätt.
  • Bilgi pencereleri rahatsız etmeyecek şekilde görüntülenir.
  • Показ інформаційних панелей у зручний спосіб, що не заважає роботі.
  • xxInformational dialogues are displayed in an unobtrusive way.xx
  • 信息对话框采用了非侵入式的方式来呈现。
  • 支援多分頁
  • Undo/redo support
  • دعم التراجع والإعادة
  • Sofitu pa la desfechura/refechura
  • Podrška za poništavanje/ponavljanje akcija
  • Admet desfer/refer
  • Admet desfer/refer
  • Podpora zpět/vpřed
  • Understøttelse af fortryd/gendan
  • Unterstützung für Rückgängig/Wiederherstellen
  • Υποστήριξη αναίρεσης/επανάληψης
  • Undo/redo support
  • Admite las operaciones de deshacer y rehacer
  • Tagasivõtmise ja uuestitegemise toetus.
  • Desegin/berregin onartzen du
  • Tuki muutosten kumoamiselle ja tekemiselle uudelleen
  • Prise en charge d'annulation et recommencement
  • Permite desfacer e refacer.
  • תמיכה בביטול וביצוע חוזר
  • Visszavonás/ismétlés támogatás
  • Supporto de annulla/reface
  • Dukungan urungkan/lanjurkan
  • Supporto di annulla/rifai
  • 실행 취소/다시 실행 지원
  • Atšaukimo/grąžinimo palaikymas
  • നിഷ്ക്രിയമാക്കുക/വീണ്ടും ചെയ്യുക പിന്തുണയ്ക്കുന്നു
  • Støtte for angring/omgjøring
  • Ünnerstütten för Torüchnehmen un Wedderherstellen
  • Ondersteuning ongedaan maken/opnieuw
  • Støtte for angring/omgjering
  • ਵਾਪਿਸ ਕਰੋ/ਪਰਤਾਉਣ ਸਹਿਯੋਗ
  • Obsługa cofnij/ponów
  • Suporte para desfazer/refazer
  • Suporte para desfazer/refazer
  • Suport pentru desfacere/refacere
  • Отмена и возврат действий;
  • Podpora Späť/Znova
  • Podpora razveljavitvam/uveljavitvam
  • Опозивање и понављање.
  • Opozivanje i ponavljanje.
  • Опозивање и понављање.
  • Opozivanje i ponavljanje.
  • Stöd för ångra och gör om
  • Geri alma/tekrarlama desteği
  • Підтримка скасовування та повторення дій.
  • xxUndo/redo supportxx
  • 撤销/重做支持
  • 以不唐突的方式顯示資訊對話框。
  • Transparent network access through the KIO system.
  • اتصال شبكيّ مباشر باستخدام نظام KIO.
  • Accesu tresparente a la rede pente'l sistema KIO.
  • Transparentni mrežni pristup kroz KIO sistem.
  • Accés transparent a la xarxa a través del sistema KIO.
  • Accés transparent a la xarxa a través del sistema KIO.
  • Transparentní přístup k síti pomocí systému KIO.
  • Transparent netværksadgang igennem KIO-systemet
  • Transparenter Netzwerkzugriff durch das KIO-System.
  • Διαφανής δικτυακή πρόσβαση με το σύστημα KIO.
  • Transparent network access through the KIO system.
  • Acceso transparente a la red a través del sistema KIO.
  • Võrgu läbipaistev kasutamine KIO-moodulite süsteemi vahendusel.
  • Sare-atzipen gardena KIO sistemen bitartez.
  • Läpinäkyvä verkon käyttö KIO-järjestelmän välityksellä.
  • Accès au réseau transparent grâce au système des KIO.
  • Ofrece acceso transparente á rede mediante o sistema KIO.
  • Átlátszó hálózati hozzáférés a KIO rendszeren keresztül.
  • Accesso de rete transparente a transverso del systema KIO.
  • Akses jaringan transparan melalui sistem KIO.
  • Accesso trasparente alla rete tramite il sistema KIO.
  • KIO 시스템을 통한 투명한 네트워크 액세스.
  • Skaidri tinklo prieiga per KIO sistemą.
  • KIO സിസ്റ്റത്തിലൂടെ ശൃംഖലയെ സമീപിക്കുന്നു.
  • Gjennomsiktig nettverkstilgang via KIO-systemet.
  • Direkt Nettwarktogriep över dat KDE-In-/Utgaav-(KIO-)Moduulsysteem
  • Transparante toegang tot het netwerk via het KIO systeem.
  • Direkte nettverkstilgang via KIO-systemet.
  • Przezroczysty dostęp do sieci przez system KIO.
  • Acesso transparente à rede através do sistema KIO.
  • Acesso transparente à rede através do sistema KIO.
  • Acces transparent la rețea prin sistemul KIO.
  • Прозрачный доступ к сетевым файловым системам при помощи KIO.
  • Transparentný prístup na sieť cez KIO systém.
  • Enostaven dostop do omrežja preko sistema KIO.
  • Прозиран мрежни приступ кроз систем К‑У/И.
  • Proziran mrežni pristup kroz sistem K‑U/I.
  • Прозиран мрежни приступ кроз систем К‑У/И.
  • Proziran mrežni pristup kroz sistem K‑U/I.
  • Transparent nätverksåtkomst via I/O-slavsystemet.
  • KIO sistemi üzerinden şeffaf ağ erişimi.
  • Прозорий доступ до ресурсів у мережі за допомогою системи KIO.
  • xxTransparent network access through the KIO system.xx
  • 通过 KIO 系统支持透明的网络访问。
  • 復原支援
https://kde.org/applications/system/dolphin https://bugs.kde.org/enter_bug.cgi?format=guided&product=dolphin https://docs.kde.org/?application=dolphin https://www.kde.org/community/donations/?app=dolphin&source=appdata File management in Dolphin Xestión de ficheros en Dolphin Gestió de fitxers al Dolphin Gestió de fitxers al Dolphin Správa souborů v Dolphinu Dateiverwaltung mit Dolphin Διαχείριση αρχείων στο Dolphin File management in Dolphin Gestión de archivos en Dolphin Failihaldus Dolphinis Fitxategi-kudeaketa Dolphin-ekin Tiedostonhallinta Dolphinissa Gestion de fichiers dans Dophin Xestión de ficheiros en Dolphin Gerente de file in Dolphin Pengelolaan file di Dolphin Gestione dei file in Dolphin Dolphin의 파일 관리 Failų tvarkymas Dolphin programoje ഡോൾഫിനിലെ ഫയൽ കൈകാര്യം ചെയ്യൽ Bestandsbeheer in Dolphin Filhandsaming i Dolphin Zarządzanie plikami w Dolphinie Gestão de ficheiros no Dolphin Gerenciamento de arquivos no Dolphin Управление файлами Správa súborov v Dolphin Filhantering i Dolphin Керування файлами у Dolphin xxFile management in Dolphinxx 在 Dolphin 中管理文件 在 Dolphin 管理檔案 https://kde.org/images/screenshots/dolphin.png KDE dolphin + +
diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 538e00e83..60ecb2a95 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -1,834 +1,834 @@ /*************************************************************************** * Copyright (C) 2006-2009 by Peter Penz * * Copyright (C) 2006 by Gregor Kališnik * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * 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., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ #ifndef DOLPHINVIEW_H #define DOLPHINVIEW_H #include "dolphintabwidget.h" #include "dolphin_export.h" #include "tooltips/tooltipmanager.h" #include #include #include #include #include #include #include #include typedef KIO::FileUndoManager::CommandType CommandType; class QVBoxLayout; class DolphinItemListView; class KFileItemModel; class KItemListContainer; class KItemModelBase; class KItemSet; class ToolTipManager; class VersionControlObserver; class ViewProperties; class QGraphicsSceneDragDropEvent; class QRegExp; /** * @short Represents a view for the directory content. * * View modes for icons, compact and details are supported. It's * possible to adjust: * - sort order * - sort type * - show hidden files * - show previews * - enable grouping */ class DOLPHIN_EXPORT DolphinView : public QWidget { Q_OBJECT public: /** * Defines the view mode for a directory. The * view mode is automatically updated if the directory itself * defines a view mode (see class ViewProperties for details). */ enum Mode { /** * The items are shown as icons with a name-label below. */ IconsView = 0, /** * The icon, the name and the size of the items are * shown per default as a table. */ DetailsView, /** * The items are shown as icons with the name-label aligned * to the right side. */ CompactView }; /** * @param url Specifies the content which should be shown. * @param parent Parent widget of the view. */ DolphinView(const QUrl& url, QWidget* parent); ~DolphinView() override; /** * Returns the current active URL, where all actions are applied. * The URL navigator is synchronized with this URL. */ QUrl url() const; /** * If \a active is true, the view will marked as active. The active * view is defined as view where all actions are applied to. */ void setActive(bool active); bool isActive() const; /** * Changes the view mode for the current directory to \a mode. * If the view properties should be remembered for each directory * (GeneralSettings::globalViewProps() returns false), then the * changed view mode will be stored automatically. */ void setMode(Mode mode); Mode mode() const; /** * Turns on the file preview for the all files of the current directory, * if \a show is true. * If the view properties should be remembered for each directory * (GeneralSettings::globalViewProps() returns false), then the * preview setting will be stored automatically. */ void setPreviewsShown(bool show); bool previewsShown() const; /** * Shows all hidden files of the current directory, * if \a show is true. * If the view properties should be remembered for each directory * (GeneralSettings::globalViewProps() returns false), then the * show hidden file setting will be stored automatically. */ void setHiddenFilesShown(bool show); bool hiddenFilesShown() const; /** * Turns on sorting by groups if \a enable is true. */ void setGroupedSorting(bool grouped); bool groupedSorting() const; /** * Returns the items of the view. */ KFileItemList items() const; /** * @return The number of items. itemsCount() is faster in comparison * to items().count(). */ int itemsCount() const; /** * Returns the selected items. The list is empty if no item has been * selected. */ KFileItemList selectedItems() const; /** * Returns the number of selected items (this is faster than * invoking selectedItems().count()). */ int selectedItemsCount() const; /** * Marks the items indicated by \p urls to get selected after the * directory DolphinView::url() has been loaded. Note that nothing * gets selected if no loading of a directory has been triggered * by DolphinView::setUrl() or DolphinView::reload(). */ void markUrlsAsSelected(const QList &urls); /** * Marks the item indicated by \p url to be scrolled to and as the * current item after directory DolphinView::url() has been loaded. */ void markUrlAsCurrent(const QUrl& url); /** * All items that match to the pattern \a pattern will get selected * if \a enabled is true and deselected if \a enabled is false. */ void selectItems(const QRegExp& pattern, bool enabled); /** * Sets the zoom level to \a level. It is assured that the used * level is adjusted to be inside the range ZoomLevelInfo::minimumLevel() and * ZoomLevelInfo::maximumLevel(). */ void setZoomLevel(int level); int zoomLevel() const; /** * Resets the view's icon size to the default value */ void resetZoomLevel(); void setSortRole(const QByteArray& role); QByteArray sortRole() const; void setSortOrder(Qt::SortOrder order); Qt::SortOrder sortOrder() const; /** Sets a separate sorting with folders first (true) or a mixed sorting of files and folders (false). */ void setSortFoldersFirst(bool foldersFirst); bool sortFoldersFirst() const; /** Sets the additional information which should be shown for the items. */ void setVisibleRoles(const QList& roles); /** Returns the additional information which should be shown for the items. */ QList visibleRoles() const; void reload(); /** * Refreshes the view to get synchronized with the settings (e.g. icons size, * font, ...). */ void readSettings(); /** * Saves the current settings (e.g. icons size, font, ..). */ void writeSettings(); /** * Filters the currently shown items by \a nameFilter. All items * which contain the given filter string will be shown. */ void setNameFilter(const QString& nameFilter); QString nameFilter() const; /** * Filters the currently shown items by \a filters. All items * whose content-type matches those given by the list of filters * will be shown. */ void setMimeTypeFilters(const QStringList& filters); QStringList mimeTypeFilters() const; /** * Returns a textual representation of the state of the current * folder or selected items, suitable for use in the status bar. */ QString statusBarText() const; /** * Returns the version control actions that are provided for the items \p items. * Usually the actions are presented in the context menu. */ QList versionControlActions(const KFileItemList& items) const; /** * Returns the state of the paste action: * first is whether the action should be enabled * second is the text for the action */ QPair pasteInfo() const; /** * If \a tabsForFiles is true, the signal tabRequested() will also * emitted also for files. Per default tabs for files is disabled * and hence the signal tabRequested() will only be emitted for * directories. */ void setTabsForFilesEnabled(bool tabsForFiles); bool isTabsForFilesEnabled() const; /** * Returns true if the current view allows folders to be expanded, * i.e. presents a hierarchical view to the user. */ bool itemsExpandable() const; /** * Restores the view state (current item, contents position, details view expansion state) */ void restoreState(QDataStream& stream); /** * Saves the view state (current item, contents position, details view expansion state) */ void saveState(QDataStream& stream); /** * Returns the root item which represents the current URL. */ KFileItem rootItem() const; /** * Sets a context that is used for remembering the view-properties. * Per default the context is empty and the path of the currently set URL * is used for remembering the view-properties. Setting a custom context * makes sense if specific types of URLs (e.g. search-URLs) should * share common view-properties. */ void setViewPropertiesContext(const QString& context); QString viewPropertiesContext() const; /** * Checks if the given \a item can be opened as folder (e.g. archives). * This function will also adjust the \a url (e.g. change the protocol). * @return a valid and adjusted url if the item can be opened as folder, * otherwise return an empty url. */ static QUrl openItemAsFolderUrl(const KFileItem& item, const bool browseThroughArchives = true); /** * Hides tooltip displayed over element. */ void hideToolTip(const ToolTipManager::HideBehavior behavior = ToolTipManager::HideBehavior::Later); public slots: /** * Changes the directory to \a url. If the current directory is equal to * \a url, nothing will be done (use DolphinView::reload() instead). */ void setUrl(const QUrl& url); /** * Selects all items. * @see DolphinView::selectedItems() */ void selectAll(); /** * Inverts the current selection: selected items get unselected, * unselected items get selected. * @see DolphinView::selectedItems() */ void invertSelection(); void clearSelection(); /** * Triggers the renaming of the currently selected items, where * the user must input a new name for the items. */ void renameSelectedItems(); /** * Moves all selected items to the trash. */ void trashSelectedItems(); /** * Deletes all selected items. */ void deleteSelectedItems(); /** * Copies all selected items to the clipboard and marks * the items as cut. */ void cutSelectedItems(); /** Copies all selected items to the clipboard. */ void copySelectedItems(); /** Pastes the clipboard data to this view. */ void paste(); /** * Pastes the clipboard data into the currently selected * folder. If the current selection is not exactly one folder, no * paste operation is done. */ void pasteIntoFolder(); /** * Handles a drop of @p dropEvent onto widget @p dropWidget and destination @p destUrl */ void dropUrls(const QUrl &destUrl, QDropEvent *dropEvent, QWidget *dropWidget); void stopLoading(); + /** + * Applies the state that has been restored by restoreViewState() + * to the view. + */ + void updateViewState(); + /** Activates the view if the item list container gets focus. */ bool eventFilter(QObject* watched, QEvent* event) override; signals: /** * Is emitted if the view has been activated by e. g. a mouse click. */ void activated(); /** Is emitted if the URL of the view has been changed to \a url. */ void urlChanged(const QUrl& url); /** * Is emitted when clicking on an item with the left mouse button. */ void itemActivated(const KFileItem& item); /** * Is emitted when multiple items have been activated by e. g. * context menu open with. */ void itemsActivated(const KFileItemList& items); /** * Is emitted if items have been added or deleted. */ void itemCountChanged(); /** * Is emitted if a new tab should be opened for the URL \a url. */ void tabRequested(const QUrl& url, DolphinTabWidget::TabPlacement tabPlacement); /** * Is emitted if the view mode (IconsView, DetailsView, * PreviewsView) has been changed. */ void modeChanged(DolphinView::Mode current, DolphinView::Mode previous); /** Is emitted if the 'show preview' property has been changed. */ void previewsShownChanged(bool shown); /** Is emitted if the 'show hidden files' property has been changed. */ void hiddenFilesShownChanged(bool shown); /** Is emitted if the 'grouped sorting' property has been changed. */ void groupedSortingChanged(bool groupedSorting); /** Is emitted if the sorting by name, size or date has been changed. */ void sortRoleChanged(const QByteArray& role); /** Is emitted if the sort order (ascending or descending) has been changed. */ void sortOrderChanged(Qt::SortOrder order); /** * Is emitted if the sorting of files and folders (separate with folders * first or mixed) has been changed. */ void sortFoldersFirstChanged(bool foldersFirst); /** Is emitted if the additional information shown for this view has been changed. */ void visibleRolesChanged(const QList& current, const QList& previous); /** Is emitted if the zoom level has been changed by zooming in or out. */ void zoomLevelChanged(int current, int previous); /** * Is emitted if information of an item is requested to be shown e. g. in the panel. * If item is null, no item information request is pending. */ void requestItemInfo(const KFileItem& item); /** * Is emitted whenever the selection has been changed. */ void selectionChanged(const KFileItemList& selection); /** * Is emitted if a context menu is requested for the item \a item, * which is part of \a url. If the item is null, the context menu * for the URL should be shown and the custom actions \a customActions * will be added. */ void requestContextMenu(const QPoint& pos, const KFileItem& item, const QUrl& url, const QList& customActions); /** * Is emitted if an information message with the content \a msg * should be shown. */ void infoMessage(const QString& msg); /** * Is emitted if an error message with the content \a msg * should be shown. */ void errorMessage(const QString& msg); /** * Is emitted if an "operation completed" message with the content \a msg * should be shown. */ void operationCompletedMessage(const QString& msg); /** * Is emitted after DolphinView::setUrl() has been invoked and * the current directory is loaded. If this signal is emitted, * it is assured that the view contains already the correct root * URL and property settings. */ void directoryLoadingStarted(); /** * Is emitted after the directory triggered by DolphinView::setUrl() * has been loaded. */ void directoryLoadingCompleted(); /** * Is emitted after the directory loading triggered by DolphinView::setUrl() * has been canceled. */ void directoryLoadingCanceled(); /** * Is emitted after DolphinView::setUrl() has been invoked and provides * the information how much percent of the current directory have been loaded. */ void directoryLoadingProgress(int percent); /** * Is emitted if the sorting is done asynchronously and provides the * progress information of the sorting. */ void directorySortingProgress(int percent); /** * Emitted when the file-item-model emits redirection. * Testcase: fish://localhost */ void redirection(const QUrl& oldUrl, const QUrl& newUrl); /** * Is emitted when the URL set by DolphinView::setUrl() represents a file. * In this case no signal errorMessage() will be emitted. */ void urlIsFileError(const QUrl& url); /** * Is emitted when the write state of the folder has been changed. The application * should disable all actions like "Create New..." that depend on the write * state. */ void writeStateChanged(bool isFolderWritable); /** * Is emitted if the URL should be changed to the previous URL of the * history (e.g. because the "back"-mousebutton has been pressed). */ void goBackRequested(); /** * Is emitted if the URL should be changed to the next URL of the * history (e.g. because the "next"-mousebutton has been pressed). */ void goForwardRequested(); /** * Is emitted when the user wants to move the focus to another view. */ void toggleActiveViewRequested(); /** * Is emitted when the user clicks a tag or a link * in the metadata widget of a tooltip. */ void urlActivated(const QUrl& url); protected: /** Changes the zoom level if Control is pressed during a wheel event. */ void wheelEvent(QWheelEvent* event) override; void hideEvent(QHideEvent* event) override; bool event(QEvent* event) override; private slots: /** * Marks the view as active (DolphinView:isActive() will return true) * and emits the 'activated' signal if it is not already active. */ void activate(); void slotItemActivated(int index); void slotItemsActivated(const KItemSet& indexes); void slotItemMiddleClicked(int index); void slotItemContextMenuRequested(int index, const QPointF& pos); void slotViewContextMenuRequested(const QPointF& pos); void slotHeaderContextMenuRequested(const QPointF& pos); void slotHeaderColumnWidthChangeFinished(const QByteArray& role, qreal current); void slotItemHovered(int index); void slotItemUnhovered(int index); void slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* event); void slotModelChanged(KItemModelBase* current, KItemModelBase* previous); void slotMouseButtonPressed(int itemIndex, Qt::MouseButtons buttons); void slotRenameDialogRenamingFinished(const QList& urls); void slotSelectedItemTextPressed(int index); /* * Is called when new items get pasted or dropped. */ void slotItemCreated(const QUrl &url); /* * Is called after all pasted or dropped items have been copied to destination. */ void slotPasteJobResult(KJob *job); /** * Emits the signal \a selectionChanged() with a small delay. This is * because getting all file items for the selection can be an expensive * operation. Fast selection changes are collected in this case and * the signal is emitted only after no selection change has been done * within a small delay. */ void slotSelectionChanged(const KItemSet& current, const KItemSet& previous); /** * Is called by emitDelayedSelectionChangedSignal() and emits the * signal \a selectionChanged() with all selected file items as parameter. */ void emitSelectionChangedSignal(); /** * Updates the view properties of the current URL to the * sorting given by \a role. */ void updateSortRole(const QByteArray& role); /** * Updates the view properties of the current URL to the * sort order given by \a order. */ void updateSortOrder(Qt::SortOrder order); /** * Updates the view properties of the current URL to the * sorting of files and folders (separate with folders first or mixed) given by \a foldersFirst. */ void updateSortFoldersFirst(bool foldersFirst); /** * Indicates in the status bar that the delete operation * of the job \a job has been finished. */ void slotDeleteFileFinished(KJob* job); /** * Indicates in the status bar that the trash operation * of the job \a job has been finished. */ void slotTrashFileFinished(KJob* job); /** * Invoked when the rename job is done, for error handling. */ void slotRenamingResult(KJob* job); /** * Invoked when the file item model has started the loading * of the directory specified by DolphinView::url(). */ void slotDirectoryLoadingStarted(); /** * Invoked when the file item model indicates that the loading of a directory has * been completed. Assures that pasted items and renamed items get selected. */ void slotDirectoryLoadingCompleted(); /** * Is invoked when items of KFileItemModel have been changed. */ void slotItemsChanged(); /** * Is invoked when the sort order has been changed by the user by clicking * on a header item. The view properties of the directory will get updated. */ void slotSortOrderChangedByHeader(Qt::SortOrder current, Qt::SortOrder previous); /** * Is invoked when the sort role has been changed by the user by clicking * on a header item. The view properties of the directory will get updated. */ void slotSortRoleChangedByHeader(const QByteArray& current, const QByteArray& previous); /** * Is invoked when the visible roles have been changed by the user by dragging * a header item. The view properties of the directory will get updated. */ void slotVisibleRolesChangedByHeader(const QList& current, const QList& previous); void slotRoleEditingCanceled(); void slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value); /** * Observes the item with the URL \a url. As soon as the directory * model indicates that the item is available, the item will * get selected and it is assured that the item stays visible. */ void observeCreatedItem(const QUrl &url); /** * Called when a redirection happens. * Testcase: fish://localhost */ void slotDirectoryRedirection(const QUrl& oldUrl, const QUrl& newUrl); - /** - * Applies the state that has been restored by restoreViewState() - * to the view. - */ - void updateViewState(); - /** * Calculates the number of currently shown files into * \a fileCount and the number of folders into \a folderCount. * The size of all files is written into \a totalFileSize. * It is recommend using this method instead of asking the * directory lister or the model directly, as it takes * filtering and hierarchical previews into account. */ void calculateItemCount(int& fileCount, int& folderCount, KIO::filesize_t& totalFileSize) const; void slotTwoClicksRenamingTimerTimeout(); private: void loadDirectory(const QUrl& url, bool reload = false); /** * Applies the view properties which are defined by the current URL * to the DolphinView properties. The view properties are read from a * .directory file either in the current directory, or in the * share/apps/dolphin/view_properties/ subfolder of the user's .kde folder. */ void applyViewProperties(); /** * Applies the given view properties to the DolphinView. */ void applyViewProperties(const ViewProperties& props); /** * Applies the m_mode property to the corresponding * itemlayout-property of the KItemListView. */ void applyModeToView(); /** * Helper method for DolphinView::paste() and DolphinView::pasteIntoFolder(). * Pastes the clipboard data into the URL \a url. */ void pasteToUrl(const QUrl& url); /** * Returns a list of URLs for all selected items. The list is * simplified, so that when the URLs are part of different tree * levels, only the parent is returned. */ QList simplifiedSelectedUrls() const; /** * Returns the MIME data for all selected items. */ QMimeData* selectionMimeData() const; /** * Updates m_isFolderWritable dependent on whether the folder represented by * the current URL is writable. If the state has changed, the signal * writeableStateChanged() will be emitted. */ void updateWritableState(); /** * @return The current URL if no viewproperties-context is given (see * DolphinView::viewPropertiesContext(), otherwise the context * is returned. */ QUrl viewPropertiesUrl() const; /** * Clears the selection and updates current item and selection according to the parameters * * @param current URL to be set as current * @param selected list of selected items */ void forceUrlsSelection(const QUrl& current, const QList& selected); void abortTwoClicksRenaming(); private: void updatePalette(); bool m_active; bool m_tabsForFiles; bool m_assureVisibleCurrentIndex; bool m_isFolderWritable; bool m_dragging; // True if a dragging is done. Required to be able to decide whether a // tooltip may be shown when hovering an item. QUrl m_url; QString m_viewPropertiesContext; Mode m_mode; QList m_visibleRoles; QVBoxLayout* m_topLayout; KFileItemModel* m_model; DolphinItemListView* m_view; KItemListContainer* m_container; ToolTipManager* m_toolTipManager; QTimer* m_selectionChangedTimer; QUrl m_currentItemUrl; // Used for making the view to remember the current URL after F5 bool m_scrollToCurrentItem; // Used for marking we need to scroll to current item or not QPoint m_restoredContentsPosition; QList m_selectedUrls; // Used for making the view to remember selections after F5 bool m_clearSelectionBeforeSelectingNewItems; bool m_markFirstNewlySelectedItemAsCurrent; VersionControlObserver* m_versionControlObserver; QTimer* m_twoClicksRenamingTimer; QUrl m_twoClicksRenamingItemUrl; // For unit tests friend class TestBase; friend class DolphinDetailsViewTest; friend class DolphinPart; // Accesses m_model }; /// Allow using DolphinView::Mode in QVariant Q_DECLARE_METATYPE(DolphinView::Mode) #endif // DOLPHINVIEW_H