From 96830697b2f3bb8d1d7e1c4a3a6872845a38926c Mon Sep 17 00:00:00 2001 From: Adam Moss Date: Mon, 10 Sep 2007 20:15:48 +0000 Subject: SL-53811, SL-53812, SL-53823, SL-26604, SL-54282 Linux filepickers revamp. Passed by QA. Reviewed by bos. svn merge svn+ssh://svn.lindenlab.com/svn/linden/release@68938 svn+ssh://svn.lindenlab.com/svn/linden/branches/moss/SL-26604-based-on-r68938 -> release --- indra/newview/lldirpicker.cpp | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'indra/newview/lldirpicker.cpp') diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp index 178cfb4e61..54b815e3a4 100644 --- a/indra/newview/lldirpicker.cpp +++ b/indra/newview/lldirpicker.cpp @@ -17,6 +17,10 @@ #include "lldir.h" #include "llframetimer.h" +#if LL_LINUX +# include "llfilepicker.h" +#endif + // // Globals // @@ -237,6 +241,56 @@ void LLDirPicker::reset() mDir = NULL; } +#elif LL_LINUX + +LLDirPicker::LLDirPicker() +{ + mFilePicker = new LLFilePicker(); + reset(); +} + +LLDirPicker::~LLDirPicker() +{ + delete mFilePicker; +} + + +void LLDirPicker::reset() +{ + if (mFilePicker) + mFilePicker->reset(); +} + +BOOL LLDirPicker::getDir(LLString* filename) +{ + reset(); + if (mFilePicker) + { + GtkWindow* picker = mFilePicker->buildFilePicker(false, true, + "dirpicker"); + + if (picker) + { + gtk_window_set_title(GTK_WINDOW(picker), "Choose Directory"); + gtk_widget_show_all(GTK_WIDGET(picker)); + gtk_main(); + return (NULL != mFilePicker->getFirstFile()); + } + } + return FALSE; +} + +LLString LLDirPicker::getDirName() +{ + if (mFilePicker) + { + const char* name = mFilePicker->getFirstFile(); + if (name) + return name; + } + return ""; +} + #else // not implemented LLDirPicker::LLDirPicker() -- cgit v1.2.3