From f86fd06b11f3871d85eebf52658056c543237006 Mon Sep 17 00:00:00 2001 From: Ingo Date: Thu, 19 Mar 2015 18:51:41 +0100 Subject: [PATCH] Sortable tree in File Browser, gc issue 2678 --- rtdata/languages/Catala | 1 + rtdata/languages/Chinese (Simplified) | 1 + rtdata/languages/Chinese (Traditional) | 1 + rtdata/languages/Czech | 1 + rtdata/languages/Dansk | 1 + rtdata/languages/Deutsch | 1 + rtdata/languages/Espanol | 1 + rtdata/languages/Euskara | 1 + rtdata/languages/Francais | 1 + rtdata/languages/Greek | 1 + rtdata/languages/Hebrew | 1 + rtdata/languages/Italiano | 1 + rtdata/languages/Japanese | 1 + rtdata/languages/Latvian | 1 + rtdata/languages/Magyar | 1 + rtdata/languages/Nederlands | 1 + rtdata/languages/Norsk BM | 1 + rtdata/languages/Polish | 1 + rtdata/languages/Polish (Latin Characters) | 1 + rtdata/languages/Portugues (Brasil) | 1 + rtdata/languages/Russian | 1 + rtdata/languages/Serbian (Cyrilic Characters) | 1 + rtdata/languages/Serbian (Latin Characters) | 1 + rtdata/languages/Slovak | 1 + rtdata/languages/Suomi | 1 + rtdata/languages/Swedish | 1 + rtdata/languages/Turkish | 1 + rtdata/languages/default | 1 + rtgui/dirbrowser.cc | 91 ++++++++++++++----- rtgui/dirbrowser.h | 4 +- rtgui/options.cc | 6 +- rtgui/options.h | 1 + 32 files changed, 103 insertions(+), 27 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 8b0c1bad1..cbfeb5e18 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -29,6 +29,7 @@ CURVEEDITOR_TOOLTIPLOAD;Carrega corba de fitxer CURVEEDITOR_TOOLTIPPASTE;Enganxa corba del portap. CURVEEDITOR_TOOLTIPSAVE;Desa la corba actual CURVEEDITOR_TYPE;Tipus: +DIRBROWSER_FOLDERS;Carpetes EDITWINDOW_TITLE;Edita imatge EXIFFILTER_APERTURE;Obertura EXIFFILTER_CAMERA;Càmera diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 10e38d207..85f31c3d5 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -29,6 +29,7 @@ CURVEEDITOR_TOOLTIPLINEAR;重置曲线 CURVEEDITOR_TOOLTIPLOAD;读取曲线 CURVEEDITOR_TOOLTIPSAVE;保存曲线 CURVEEDITOR_TYPE;类型: +DIRBROWSER_FOLDERS;文件夹 EDITWINDOW_TITLE;图片修改 EXIFFILTER_APERTURE;光圈 EXIFFILTER_CAMERA;相机 diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index 20494b3db..afaece578 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -11,6 +11,7 @@ CURVEEDITOR_SAVEDLGLABEL;正儲存曲線... CURVEEDITOR_TOOLTIPLINEAR;重置曲線 CURVEEDITOR_TOOLTIPLOAD;載入曲線 CURVEEDITOR_TOOLTIPSAVE;儲存曲線 +DIRBROWSER_FOLDERS;文件夾 EXIFFILTER_APERTURE;Aperture EXIFFILTER_CAMERA;Camera EXIFFILTER_FOCALLEN;Focal Length diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 962d20018..5846efdae 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -63,6 +63,7 @@ CURVEEDITOR_TOOLTIPLOAD;Načíst křivku ze souboru. CURVEEDITOR_TOOLTIPPASTE;Vložit křivku ze schránky. CURVEEDITOR_TOOLTIPSAVE;Uložit současnou křivku. CURVEEDITOR_TYPE;Typ +DIRBROWSER_FOLDERS;Složky EDITWINDOW_TITLE;Editace obrázku EDIT_OBJECT_TOOLTIP;V náhledovém okně zobrazí widget umožňující přizpůsobení nástroje. EDIT_PIPETTE_TOOLTIP;Pro přidání bodu na křivku, podržte klávesu Ctrl a klikněte levým tlačítkem na vybraný bod v náhledu obrázku.\nPro úpravu bodu podržte klávesu Ctrl a klikněte levým tlačítkem na odpovídající oblast v náhledu, následně uvolněte klávesu Ctrl (pokud si přejete jemné změny) a za stálého držení levého tlačítka myši pohybujte myší nahoru a dolů což bude posouvat bod na křivce nahoru a dolů. diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index 404587d00..73628c7e9 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -9,6 +9,7 @@ CURVEEDITOR_SAVEDLGLABEL;Gem kurve... CURVEEDITOR_TOOLTIPLINEAR;Nulstil kurve til lineær CURVEEDITOR_TOOLTIPLOAD;Indlæs kurve fra fil CURVEEDITOR_TOOLTIPSAVE;Gem nuværende kurve +DIRBROWSER_FOLDERS;Mapper EXIFFILTER_APERTURE;Blænde EXIFFILTER_CAMERA;Kamera EXIFFILTER_FOCALLEN;Brændvidde diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index ce9fa70f3..96ca16a84 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -49,6 +49,7 @@ CURVEEDITOR_TOOLTIPLOAD;Kurve aus Datei laden CURVEEDITOR_TOOLTIPPASTE;Kurve aus Zwischenablage einfügen CURVEEDITOR_TOOLTIPSAVE;Kurve speichern CURVEEDITOR_TYPE;Typ +DIRBROWSER_FOLDERS;Verzeichnisse EDITWINDOW_TITLE;Bildbearbeitung EXIFFILTER_APERTURE;Blende EXIFFILTER_CAMERA;Kamera diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index d13385a27..3ebdfef29 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -91,6 +91,7 @@ CURVEEDITOR_TOOLTIPLOAD;Abrir una curva desde un archivo CURVEEDITOR_TOOLTIPPASTE;Pegar curva desde el portapapeles CURVEEDITOR_TOOLTIPSAVE;Guardar curva actual CURVEEDITOR_TYPE;Tipo: +DIRBROWSER_FOLDERS;Carpetas EDITWINDOW_TITLE;Edición de imagen EDIT_OBJECT_TOOLTIP;Muestra un instrumento en la ventana de previo, el cual le permitirá ajustar esta herramienta. EDIT_PIPETTE_TOOLTIP;Para agregar un punto de ajuste en la curva , mantenga presionada la tecla Ctrl mientras oprime el botón izquierdo del ratón sobre el punto deseado en el previo de la imagen.\nPara ajustar el punto, mantenga presionada la tecla Ctrl mientras oprime el botón izquierdo del ratón sobre la correspondiente area en el previo y muevase hacia arriba y/o hacia abajo, logrando un ajuste fino del punto en la curva. Si desea un ajuste mayor, libere la tecla Ctrl. diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index 1dddb6afa..d932456a4 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -9,6 +9,7 @@ CURVEEDITOR_SAVEDLGLABEL;Kurba gorde... CURVEEDITOR_TOOLTIPLINEAR;Kurba lineala berrabiarazi CURVEEDITOR_TOOLTIPLOAD;Artxibo batetik kurba ireki CURVEEDITOR_TOOLTIPSAVE;Uneko kurba gorde +DIRBROWSER_FOLDERS;Karpetak EXIFFILTER_APERTURE;Aperture EXIFFILTER_CAMERA;Camera EXIFFILTER_FOCALLEN;Focal Length diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 94c988531..1c0bfe67a 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -30,6 +30,7 @@ CURVEEDITOR_TOOLTIPLOAD;Charger une courbe depuis un fichier CURVEEDITOR_TOOLTIPPASTE;Colle la courbe du presse-papier CURVEEDITOR_TOOLTIPSAVE;Enregistrer la courbe actuelle CURVEEDITOR_TYPE;Type: +DIRBROWSER_FOLDERS;Répertoires EDITWINDOW_TITLE;Édition d'image EDIT_OBJECT_TOOLTIP;Affiche des éléments dans la fenêtre de prévisualisation qui vous permettront d'ajuster cet outil. EDIT_PIPETTE_TOOLTIP;Pour ajouter un point d'ajustement de la courbe, maintenez la touche Ctrl préssée et cliquez dans l'image avec le bouton gauche.\nPour ajuster le point, pressez la touche Ctrl lors du clic-gauche sur la zone correspondande dans l'apperçu, puis relachez Ctrl (sauf si vous désirez un control plus fin) et tout en gardant le bouton gauche appuyé, déplacez le curseur vers le haut ou le bas pour ajuster la position du point. diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index b7dbd0191..1cad22252 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -9,6 +9,7 @@ CURVEEDITOR_SAVEDLGLABEL;Αποθήκευση καμπλης... CURVEEDITOR_TOOLTIPLINEAR;Επαναφορά καμπύλης σε γραμμική CURVEEDITOR_TOOLTIPLOAD;Φόρτωση καμπύλης απο αρχείο CURVEEDITOR_TOOLTIPSAVE;Αποθήκευση παρούσας καμπύλης +DIRBROWSER_FOLDERS;Φάκελοι EXIFFILTER_APERTURE;Aperture EXIFFILTER_CAMERA;Camera EXIFFILTER_FOCALLEN;Focal Length diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index 9881644ff..1314138ec 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -9,6 +9,7 @@ CURVEEDITOR_SAVEDLGLABEL;שמור עקמה CURVEEDITOR_TOOLTIPLINEAR;החזר עקמה לישירה CURVEEDITOR_TOOLTIPLOAD;הטען עקמה CURVEEDITOR_TOOLTIPSAVE;שמור עקמה נוכחית +DIRBROWSER_FOLDERS;תיקיות EXIFFILTER_APERTURE;Aperture EXIFFILTER_CAMERA;Camera EXIFFILTER_FOCALLEN;Focal Length diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 6ea93a3eb..c885e40aa 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -34,6 +34,7 @@ CURVEEDITOR_TOOLTIPLOAD;Carica una curva da file CURVEEDITOR_TOOLTIPPASTE;Incolla la curva dagli appunti CURVEEDITOR_TOOLTIPSAVE;Salva la curva corrente CURVEEDITOR_TYPE;Tipologia: +DIRBROWSER_FOLDERS;Cartelle EDITWINDOW_TITLE;Modifica immagine EDIT_OBJECT_TOOLTIP;Mostra un widget nella finestra anteprima che ti permette di configurare questo strumento. EDIT_PIPETTE_TOOLTIP;Per aggiungere un punto di regolazione alla curva, tieni premuto il tasto Ctrl e fai click sul punto desiderato nell'anteprima dell'immagine.\nPer sistemare il punto, tieni premuto il tasto Ctrl mentre fai click sulla corrispondente area nell'anteprima, poi lascia il tasto Ctrl (a meno che non desideri un controllo fine) e mentre tieni premuto il tasto sinistro del mouse, muovilo in su e in giù per muovere il punto su e giù sulla curva. diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index af900f87e..c66620a92 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -57,6 +57,7 @@ CURVEEDITOR_TOOLTIPLOAD;ファイルからカーブを読み込む CURVEEDITOR_TOOLTIPPASTE;クリップボードからカーブを貼り付け CURVEEDITOR_TOOLTIPSAVE;現在のカーブを保存 CURVEEDITOR_TYPE;タイプ: +DIRBROWSER_FOLDERS;フォルダ EDITWINDOW_TITLE;画像編集 EDIT_OBJECT_TOOLTIP;この機能を使うための目安に、プレビュー画面にガイドを表示する EDIT_PIPETTE_TOOLTIP;カーブ上に調整ポイントを追加するには、Ctrlキーを押しながら、プレビューの画像上の目標ポイントを左クリックします。\n追加されたそのポイントを調整するには、Ctrlキーを押しながら、プレビュー画像のそのポイントに当たる部分を左クリックします。それからCtrlキーを離し(微妙な調整をする場合はそのまま)、左クリックしたままマウスを画面上で上下に動かすと、それに合わせてトーンカーブが調整されます。 diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index 273bd5fc2..bf37db420 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -9,6 +9,7 @@ CURVEEDITOR_SAVEDLGLABEL;Saglabāt līkni... CURVEEDITOR_TOOLTIPLINEAR;Iztaisnot līkni CURVEEDITOR_TOOLTIPLOAD;Ielādēt līkni no faila CURVEEDITOR_TOOLTIPSAVE;Saglabāt esošo līkni +DIRBROWSER_FOLDERS;Mapes EXIFFILTER_APERTURE;Atvērums EXIFFILTER_CAMERA;Kamera EXIFFILTER_FOCALLEN;Fokusa garums diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 107917f8f..f7bc94b4a 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -29,6 +29,7 @@ CURVEEDITOR_TOOLTIPLOAD;Görbe betöltése CURVEEDITOR_TOOLTIPPASTE;Görbe beillesztése a vágólapról CURVEEDITOR_TOOLTIPSAVE;Görbe mentése CURVEEDITOR_TYPE;Típus: +DIRBROWSER_FOLDERS;Mappák EDITWINDOW_TITLE;Kép szerkesztése EXIFFILTER_APERTURE;Rekesz EXIFFILTER_CAMERA;Fényképezőgép diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index acf084476..7744bd5dc 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -42,6 +42,7 @@ CURVEEDITOR_TOOLTIPLOAD;Laad curve uit bestand CURVEEDITOR_TOOLTIPPASTE;Plak curve van klembord CURVEEDITOR_TOOLTIPSAVE;Bewaar huidige curve CURVEEDITOR_TYPE;Type: +DIRBROWSER_FOLDERS;Mappen EDITWINDOW_TITLE;Bewerk afbeelding EDIT_OBJECT_TOOLTIP;Toont een widget in het voorbeeld scherm waarmee de werking van het gereedschap kan worden aangepast. EDIT_PIPETTE_TOOLTIP;Voeg een punt toe aan de curve door de Ctrl toets ingedrukt te houden en tegelijkertijd te links-klikken op de gewenste plek op het voorbeeld.\nOm een punt te wijzigen, hou de Ctrl toets ingedrukt en links-klik tegelijkertijd op het gewenste gebied in het voorbeeld, en laat daarna de Ctrl toets los (behalve wanneer fijne controle is gewenst), blijf de linker muis knop ingedrukt houden en beweeg de muis naar boven of beneden om dit punt te verschuiven op de curve. diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index e4f5dba3d..f370f7ae1 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -9,6 +9,7 @@ CURVEEDITOR_SAVEDLGLABEL;Lagre kurve... CURVEEDITOR_TOOLTIPLINEAR;Nullstil kurve til linjær CURVEEDITOR_TOOLTIPLOAD;Lagre kurve fra fil CURVEEDITOR_TOOLTIPSAVE;Lagre nåværende kurve +DIRBROWSER_FOLDERS;Mapper EXIFFILTER_APERTURE;Blender EXIFFILTER_CAMERA;Kamera EXIFFILTER_FOCALLEN;Fokallengde diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 096704b79..c5b311e5a 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -38,6 +38,7 @@ CURVEEDITOR_TOOLTIPLOAD;Wczytaj krzywą z pliku CURVEEDITOR_TOOLTIPPASTE;Wstaw krzywą ze schowka CURVEEDITOR_TOOLTIPSAVE;Zapisz krzywą CURVEEDITOR_TYPE;Typ: +DIRBROWSER_FOLDERS;Katalogi EDITWINDOW_TITLE;Edytor obrazu EDIT_OBJECT_TOOLTIP;Wyświetla widżet na podglądzie który ułatwia ustawienie narzędzia. EDIT_PIPETTE_TOOLTIP;Aby dodać punkt do krzywej należy trzymac wciśnięty klawisz Ctrl podczas kliknięcia lewym guzikiem myszki na danym obszarze głównego podglądu.\nAby zmienic ustawienie już istniejącego punktu, należy trzymać wduszony klawisz Ctrl podczas kliknięcia lewym guzikiem myszki na danym obszarze głównego podglądu, następnie należy puścić klawisz Ctrl (chyba że chodzi nam o bardzo precyzyjne ustawienie dzieki spowolnieniu jakie trzymanie klawisza Ctrl nam daje) i podczas trzymania lewego guzika myszki należy myszką ruszać w pionie aby odpowiednio manipulować punktem w pionie. diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index d6c438d70..25f9b0e8e 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -38,6 +38,7 @@ CURVEEDITOR_TOOLTIPLOAD;Wczytaj krzywa z pliku CURVEEDITOR_TOOLTIPPASTE;Wstaw krzywa ze schowka CURVEEDITOR_TOOLTIPSAVE;Zapisz krzywa CURVEEDITOR_TYPE;Typ: +DIRBROWSER_FOLDERS;Katalogi EDITWINDOW_TITLE;Edytor obrazu EDIT_OBJECT_TOOLTIP;Wyswietla widzet na podgladzie ktory ulatwia ustawienie narzedzia. EDIT_PIPETTE_TOOLTIP;Aby dodac punkt do krzywej nalezy trzymac wcisniety klawisz Ctrl podczas klikniecia lewym guzikiem myszki na danym obszarze glownego podgladu.\nAby zmienic ustawienie juz istniejacego punktu, nalezy trzymac wduszony klawisz Ctrl podczas klikniecia lewym guzikiem myszki na danym obszarze glownego podgladu, nastepnie nalezy puscic klawisz Ctrl (chyba ze chodzi nam o bardzo precyzyjne ustawienie dzieki spowolnieniu jakie trzymanie klawisza Ctrl nam daje) i podczas trzymania lewego guzika myszki nalezy myszka ruszac w pionie aby odpowiednio manipulowac punktem w pionie. diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 5040d003e..27839186f 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -9,6 +9,7 @@ CURVEEDITOR_SAVEDLGLABEL;Salvar Curva... CURVEEDITOR_TOOLTIPLINEAR;Restaurar curva para linha CURVEEDITOR_TOOLTIPLOAD;Carregar uma Curva a Partir de Arquivo CURVEEDITOR_TOOLTIPSAVE;Salvar Arquivo Atual +DIRBROWSER_FOLDERS;Folders EXIFFILTER_APERTURE;Abertura EXIFFILTER_CAMERA;Câmera EXIFFILTER_FOCALLEN;Distância Focal diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 6d4ffde99..ce34c868d 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -36,6 +36,7 @@ CURVEEDITOR_TOOLTIPLOAD;Загрузить тоновую кривую CURVEEDITOR_TOOLTIPPASTE;Вставить кривую из буфера обмена CURVEEDITOR_TOOLTIPSAVE;Сохранить тоновую кривую CURVEEDITOR_TYPE;Тип: +DIRBROWSER_FOLDERS;Папки EDITWINDOW_TITLE;Редактор EXIFFILTER_APERTURE;Диафрагма EXIFFILTER_CAMERA;Камера diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index ccc96b29d..6a53cef7a 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -28,6 +28,7 @@ CURVEEDITOR_TOOLTIPLOAD;Учитава кривуљу из датотеке CURVEEDITOR_TOOLTIPPASTE;Убацује кривуљу из оставе CURVEEDITOR_TOOLTIPSAVE;Чува тренутну кривуљу CURVEEDITOR_TYPE;Врста: +DIRBROWSER_FOLDERS;Фасцикле EDITWINDOW_TITLE;Уређивање слике EXIFFILTER_APERTURE;Отвор бленде EXIFFILTER_CAMERA;Фото апарат diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index 78466a723..607044376 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -28,6 +28,7 @@ CURVEEDITOR_TOOLTIPLOAD;Učitava krivulju iz datoteke CURVEEDITOR_TOOLTIPPASTE;Ubacuje krivulju iz ostave CURVEEDITOR_TOOLTIPSAVE;Čuva trenutnu krivulju CURVEEDITOR_TYPE;Vrsta: +DIRBROWSER_FOLDERS;Fascikle EDITWINDOW_TITLE;Uređivanje slike EXIFFILTER_APERTURE;Otvor blende EXIFFILTER_CAMERA;Foto aparat diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index b8df6cb6e..12b6177f7 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -21,6 +21,7 @@ CURVEEDITOR_TOOLTIPLINEAR;Resetovať krivku na lineárnu CURVEEDITOR_TOOLTIPLOAD;Načítať krivku zo súboru CURVEEDITOR_TOOLTIPSAVE;Uložiť súčasnú krivku CURVEEDITOR_TYPE;Typ: +DIRBROWSER_FOLDERS;Priečinky EXIFFILTER_APERTURE;Clona EXIFFILTER_CAMERA;Fotoaparát EXIFFILTER_FOCALLEN;Ohnisková vzdialenosť diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index b496e6b3c..53cc35df0 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -9,6 +9,7 @@ CURVEEDITOR_SAVEDLGLABEL;Tallenna käyrä... CURVEEDITOR_TOOLTIPLINEAR;Palauta suoraksi CURVEEDITOR_TOOLTIPLOAD;Lataa käyrä tiedostosta CURVEEDITOR_TOOLTIPSAVE;Tallenna käyrä +DIRBROWSER_FOLDERS;Kansiot EXIFFILTER_APERTURE;Aukko EXIFFILTER_CAMERA;Kamera EXIFFILTER_FOCALLEN;Polttoväli diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index ff1b0201a..a75d69db8 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -32,6 +32,7 @@ CURVEEDITOR_TOOLTIPLOAD;Ladda kurva från fil CURVEEDITOR_TOOLTIPPASTE;Klistra in kurva från klippbordet CURVEEDITOR_TOOLTIPSAVE;Spara nuvarande kurva CURVEEDITOR_TYPE;Typ: +DIRBROWSER_FOLDERS;Mappar EDITWINDOW_TITLE;Bildredigering EXIFFILTER_APERTURE;Bländare EXIFFILTER_CAMERA;Kamera diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index bdda03bfc..33c39b2c1 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -9,6 +9,7 @@ CURVEEDITOR_SAVEDLGLABEL;Eğriyi kaydet... CURVEEDITOR_TOOLTIPLINEAR;Eğriyi düzelt CURVEEDITOR_TOOLTIPLOAD;Kayıtlı bir eğriyi yü CURVEEDITOR_TOOLTIPSAVE;Kullanılan eğriyi kaydet +DIRBROWSER_FOLDERS;Klasörler EXIFFILTER_APERTURE;Aperture EXIFFILTER_CAMERA;Camera EXIFFILTER_FOCALLEN;Focal Length diff --git a/rtdata/languages/default b/rtdata/languages/default index e5d5d8adc..5974a07bd 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -32,6 +32,7 @@ CURVEEDITOR_TOOLTIPLOAD;Load a curve from file. CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. CURVEEDITOR_TOOLTIPSAVE;Save current curve. CURVEEDITOR_TYPE;Type: +DIRBROWSER_FOLDERS;Folders EDITWINDOW_TITLE;Image Edit EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. diff --git a/rtgui/dirbrowser.cc b/rtgui/dirbrowser.cc index 502a620a2..c08680c64 100644 --- a/rtgui/dirbrowser.cc +++ b/rtgui/dirbrowser.cc @@ -22,6 +22,7 @@ #include #endif #include "options.h" +#include "multilangmgr.h" #include "../rtengine/safegtk.h" #include @@ -30,7 +31,17 @@ #define CHECKTIME 5000 -DirBrowser::DirBrowser () : expandSuccess(false) +struct DirNameComparator { + template + bool operator()(T const &firstDir, T const &secondDir) const { + return options.dirBrowserSortType == Gtk::SORT_ASCENDING ? firstDir < secondDir : firstDir > secondDir; + } +}; + +DirBrowser::DirBrowser () : dirTreeModel(), + dtColumns(), + tvc(M("DIRBROWSER_FOLDERS")), + expandSuccess(false) #ifdef WIN32 , volumes(0) #endif @@ -40,7 +51,8 @@ DirBrowser::DirBrowser () : expandSuccess(false) scrolledwindow4 = Gtk::manage ( new Gtk::ScrolledWindow() ); // dirtree->set_flags(Gtk::CAN_FOCUS); - dirtree->set_headers_visible(false); + dirtree->set_headers_visible(); + dirtree->set_headers_clickable(); dirtree->set_rules_hint(false); dirtree->set_reorderable(false); dirtree->set_enable_search(false); @@ -74,19 +86,27 @@ void DirBrowser::fillDirTree () { Gtk::CellRendererPixbuf* render_pb = Gtk::manage ( new Gtk::CellRendererPixbuf () ); tvc.pack_start (*render_pb, false); - tvc.add_attribute(*render_pb, "pixbuf-expander-closed", 1); - tvc.add_attribute(*render_pb, "pixbuf", 1); - tvc.add_attribute(*render_pb, "pixbuf-expander-open", 0); + tvc.add_attribute(*render_pb, "pixbuf-expander-closed", dtColumns.icon2); + tvc.add_attribute(*render_pb, "pixbuf", dtColumns.icon2); + tvc.add_attribute(*render_pb, "pixbuf-expander-open", dtColumns.icon1); tvc.pack_start (crt); - tvc.add_attribute(crt, "text", 2); - + tvc.add_attribute(crt, "text", dtColumns.filename); + + dirtree->append_column(tvc); + + tvc.set_sort_order(options.dirBrowserSortType); + tvc.set_sort_column(dtColumns.filename); + tvc.set_sort_indicator(true); + tvc.set_clickable(); + + dirTreeModel->set_sort_column(dtColumns.filename, options.dirBrowserSortType); + crt.property_ypad() = 0; render_pb->property_ypad() = 0; - - dirtree->append_column(tvc); dirtree->signal_row_expanded().connect(sigc::mem_fun(*this, &DirBrowser::row_expanded)); dirtree->signal_row_activated().connect(sigc::mem_fun(*this, &DirBrowser::row_activated)); + dirTreeModel->signal_sort_column_changed().connect(sigc::mem_fun(*this, &DirBrowser::on_sort_column_changed)); } #ifdef WIN32 @@ -196,29 +216,52 @@ void DirBrowser::fillRoot () { #endif } +void DirBrowser::on_sort_column_changed() const { + options.dirBrowserSortType = tvc.get_sort_order(); +} + void DirBrowser::row_expanded (const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& path) { expandSuccess = false; - int todel = iter->children().size(); + // We will disable model's sorting because it decreases speed of inserting new items + // in list tree dramatically. Therefore will do: + // 1) Disable sorting in model + // 2) Manually sort data by DirNameComparator + // 3) Enable sorting in model again for UI (sorting by click on header) + int prevSortColumn; + Gtk::SortType prevSortType; + dirTreeModel->get_sort_column_id(prevSortColumn, prevSortType); + dirTreeModel->set_sort_column(Gtk::TreeSortable::DEFAULT_UNSORTED_COLUMN_ID, Gtk::SORT_ASCENDING); - std::vector subDirs; + typedef std::vector DirPathType; + + DirPathType subDirs; Glib::RefPtr dir = Gio::File::create_for_path (iter->get_value (dtColumns.dirname)); safe_build_subdir_list (dir, subDirs, options.fbShowHidden); - if (subDirs.empty()) - dirtree->collapse_row (path); - else { - - std::sort (subDirs.begin(), subDirs.end()); - for (size_t i=0; icollapse_row(path); + } + else { + Gtk::TreeNodeChildren children = iter->children(); + std::list forErase(children.begin(), children.end()); - for (int i=0; ierase (iter->children().begin()); - expandSuccess = true; - } + DirNameComparator comparator; + sort(subDirs.begin(), subDirs.end(), comparator); + + for (DirPathType::const_iterator it = subDirs.begin(), end = subDirs.end(); it != end; ++it) { + addDir(iter, *it); + } + + for (std::list::const_iterator it = forErase.begin(), end = forErase.end(); it != end; ++it) { + dirTreeModel->erase(*it); + } + dirTreeModel->set_sort_column(prevSortColumn, prevSortType); + + expandSuccess = true; + } #ifdef WIN32 Glib::RefPtr monitor = Glib::RefPtr(new WinDirMonitor (iter->get_value (dtColumns.dirname), this)); iter->set_value (dtColumns.monitor, monitor); @@ -265,8 +308,8 @@ void DirBrowser::addDir (const Gtk::TreeModel::iterator& iter, const Glib::ustri Gtk::TreeModel::iterator child = dirTreeModel->append(iter->children()); child->set_value (dtColumns.filename, dirname); - child->set_value (0, openfolder); - child->set_value (1, closedfolder); + child->set_value (dtColumns.icon1, openfolder); + child->set_value (dtColumns.icon2, closedfolder); Glib::ustring fullname = Glib::build_filename (iter->get_value (dtColumns.dirname), dirname); child->set_value (dtColumns.dirname, fullname); Gtk::TreeModel::iterator fooRow = dirTreeModel->append(child->children()); diff --git a/rtgui/dirbrowser.h b/rtgui/dirbrowser.h index c1a3a9a68..dc9c21522 100644 --- a/rtgui/dirbrowser.h +++ b/rtgui/dirbrowser.h @@ -52,10 +52,11 @@ class DirBrowser : public Gtk::VBox, public DirBrowserRemoteInterface DirTreeColumns() { add(icon1); add(icon2); add(filename); add(dirname); add(monitor); } }; + DirTreeColumns dtColumns; Gtk::TreeViewColumn tvc; Gtk::CellRendererText crt; Gtk::CellRendererPixbuf crb; - DirTreeColumns dtColumns; + Gtk::TreeView *dirtree; Gtk::ScrolledWindow *scrolledwindow4; @@ -92,6 +93,7 @@ class DirBrowser : public Gtk::VBox, public DirBrowserRemoteInterface DirBrowser (); void fillDirTree (); + void on_sort_column_changed() const; void row_expanded (const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& path); void row_activated (const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* column); void file_changed (const Glib::RefPtr& file, const Glib::RefPtr& other_file, Gio::FileMonitorEvent event_type, const Gtk::TreeModel::iterator& iter, const Glib::ustring& dirName); diff --git a/rtgui/options.cc b/rtgui/options.cc index 6abed182b..55f253402 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -276,6 +276,7 @@ void Options::setDefaults () { detailWindowHeight = -1; dirBrowserWidth = 260; dirBrowserHeight = 350; + dirBrowserSortType = Gtk::SORT_ASCENDING; preferencesWidth = 800; preferencesHeight = 0; toolPanelWidth = 400; @@ -790,6 +791,7 @@ if (keyFile.has_group ("GUI")) { if (keyFile.has_key ("GUI", "DetailWindowHeight")) detailWindowHeight = keyFile.get_integer ("GUI", "DetailWindowHeight"); if (keyFile.has_key ("GUI", "DirBrowserWidth")) dirBrowserWidth = keyFile.get_integer ("GUI", "DirBrowserWidth"); if (keyFile.has_key ("GUI", "DirBrowserHeight")) dirBrowserHeight = keyFile.get_integer ("GUI", "DirBrowserHeight"); + if (keyFile.has_key ("GUI", "SortType")) dirBrowserSortType = static_cast(keyFile.get_integer ("GUI", "SortType")); if (keyFile.has_key ("GUI", "PreferencesWidth")) preferencesWidth = keyFile.get_integer ("GUI", "PreferencesWidth"); if (keyFile.has_key ("GUI", "PreferencesHeight")) preferencesHeight = keyFile.get_integer ("GUI", "PreferencesHeight"); if (keyFile.has_key ("GUI", "SaveAsDialogWidth")) saveAsDialogWidth = keyFile.get_integer ("GUI", "SaveAsDialogWidth"); @@ -1008,8 +1010,7 @@ int Options::saveToFile (Glib::ustring fname) { keyFile.set_string ("External Editor", "GimpDir", gimpDir); keyFile.set_string ("External Editor", "PhotoshopDir", psDir); keyFile.set_string ("External Editor", "CustomEditor", customEditorProg); - - + keyFile.set_boolean ("File Browser", "BrowseOnlyRaw", fbOnlyRaw); keyFile.set_boolean ("File Browser", "BrowserShowsDate", fbShowDateTime); keyFile.set_boolean ("File Browser", "BrowserShowsExif", fbShowBasicExif); @@ -1115,6 +1116,7 @@ int Options::saveToFile (Glib::ustring fname) { keyFile.set_integer ("GUI", "DetailWindowHeight", detailWindowHeight); keyFile.set_integer ("GUI", "DirBrowserWidth", dirBrowserWidth); keyFile.set_integer ("GUI", "DirBrowserHeight", dirBrowserHeight); + keyFile.set_integer ("GUI", "SortType", dirBrowserSortType); keyFile.set_integer ("GUI", "PreferencesWidth", preferencesWidth); keyFile.set_integer ("GUI", "PreferencesHeight", preferencesHeight); keyFile.set_integer ("GUI", "SaveAsDialogWidth", saveAsDialogWidth); diff --git a/rtgui/options.h b/rtgui/options.h index 151883992..1de555f87 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -98,6 +98,7 @@ class Options { Glib::ustring dateFormat; int adjusterDelay; int startupDir; + Gtk::SortType dirBrowserSortType; Glib::ustring startupPath; Glib::ustring profilePath; // can be an absolute or relative path; depending on this value, bundled profiles may not be found bool useBundledProfiles; // only used if multiUser == true