From 57d423745fd1d3d0ea6a0c69b869a20c27e27fc5 Mon Sep 17 00:00:00 2001 From: Nicky Dasmijn Date: Fri, 5 Apr 2024 19:25:02 +0200 Subject: Linux viewer (ReleaseOS) resurrection (#1099) Co-authored-by: AiraYumi --- indra/newview/lldirpicker.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'indra/newview/lldirpicker.cpp') diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp index 01790ad19e..e541d2ab00 100644 --- a/indra/newview/lldirpicker.cpp +++ b/indra/newview/lldirpicker.cpp @@ -41,6 +41,10 @@ # include "llfilepicker.h" #endif +#ifdef LL_FLTK + #include "FL/Fl.H" + #include "FL/Fl_Native_File_Chooser.H" +#endif // // Globals // @@ -193,20 +197,28 @@ LLDirPicker::LLDirPicker() : mFileName(NULL), mLocked(false) { +#ifndef LL_FLTK mFilePicker = new LLFilePicker(); +#endif reset(); } LLDirPicker::~LLDirPicker() { +#ifndef LL_FLTK delete mFilePicker; +#endif } void LLDirPicker::reset() { +#ifndef LL_FLTK if (mFilePicker) mFilePicker->reset(); +#else + mDir = ""; +#endif } BOOL LLDirPicker::getDir(std::string* filename, bool blocking) @@ -219,6 +231,7 @@ BOOL LLDirPicker::getDir(std::string* filename, bool blocking) return FALSE; } +#ifndef LL_FLTK #if !LL_MESA_HEADLESS if (mFilePicker) @@ -237,15 +250,38 @@ BOOL LLDirPicker::getDir(std::string* filename, bool blocking) #endif // !LL_MESA_HEADLESS return FALSE; +#else + gViewerWindow->getWindow()->beforeDialog(); + Fl_Native_File_Chooser flDlg; + flDlg.title(LLTrans::getString("choose_the_directory").c_str()); + flDlg.type(Fl_Native_File_Chooser::BROWSE_DIRECTORY ); + int res = flDlg.show(); + gViewerWindow->getWindow()->afterDialog(); + if( res == 0 ) + { + char const *pDir = flDlg.filename(0); + if( pDir ) + mDir = pDir; + } + else if( res == -1 ) + { + LL_WARNS() << "FLTK failed: " << flDlg.errmsg() << LL_ENDL; + } + return !mDir.empty(); +#endif } std::string LLDirPicker::getDirName() { +#ifndef LL_FLTK if (mFilePicker) { return mFilePicker->getFirstFile(); } return ""; +#else + return mDir; +#endif } #else // not implemented -- cgit v1.2.3 From 2d4de107f8fc3714f75f73fc9293c87eaf0e5acb Mon Sep 17 00:00:00 2001 From: Nicky Dasmijn Date: Sun, 14 Apr 2024 15:14:23 +0200 Subject: Feature/linux gtk removal (#1225) * GTK remnants removal Remove old GTK code and wire up some missing fltk logic in llfilepicker This will leave linux_crash_logger as an empy stub which could be used as a skeleton in case crash logging gets implemented. Otherwise linux_crash_logger and what is left of it in some cmake files can be deleted. * Update SDL2 to latest version. This revealed openal has also a dependebcy on sndio. Consequently the dependency was moved to OPENMAL.cmake and canot be dropped. * Handle missing filetypes: FFSAVE_GLTF,FFLOAD_GLTF, FFLOAD_MATERIAL, FFLOAD_MATERIAL_TEXTURE --- indra/newview/lldirpicker.cpp | 43 ++++++++++++------------------------------- 1 file changed, 12 insertions(+), 31 deletions(-) (limited to 'indra/newview/lldirpicker.cpp') diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp index e541d2ab00..d1c251bfc1 100644 --- a/indra/newview/lldirpicker.cpp +++ b/indra/newview/lldirpicker.cpp @@ -1,25 +1,25 @@ -/** +/** * @file lldirpicker.cpp * @brief OS-specific file picker * * $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library 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 * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -59,7 +59,7 @@ LLDirPicker LLDirPicker::sInstance; // Implementation // -// utility function to check if access to local file system via file browser +// utility function to check if access to local file system via file browser // is enabled and if not, tidy up and indicate we're not allowed to do this. bool LLDirPicker::check_local_file_access_enabled() { @@ -111,7 +111,7 @@ BOOL LLDirPicker::getDir(std::string* filename, bool blocking) BOOL success = FALSE; - + if (blocking) { // Modal, so pause agent @@ -182,7 +182,7 @@ void LLDirPicker::reset() BOOL LLDirPicker::getDir(std::string* filename, bool blocking) { LLFilePicker::ELoadFilter filter=LLFilePicker::FFLOAD_DIRECTORY; - + return mFilePicker->getOpenFile(filter, true); } @@ -231,26 +231,7 @@ BOOL LLDirPicker::getDir(std::string* filename, bool blocking) return FALSE; } -#ifndef LL_FLTK -#if !LL_MESA_HEADLESS - - if (mFilePicker) - { - GtkWindow* picker = mFilePicker->buildFilePicker(false, true, - "dirpicker"); - - if (picker) - { - gtk_window_set_title(GTK_WINDOW(picker), LLTrans::getString("choose_the_directory").c_str()); - gtk_widget_show_all(GTK_WIDGET(picker)); - gtk_main(); - return (!mFilePicker->getFirstFile().empty()); - } - } -#endif // !LL_MESA_HEADLESS - - return FALSE; -#else +#ifdef LL_FLTK gViewerWindow->getWindow()->beforeDialog(); Fl_Native_File_Chooser flDlg; flDlg.title(LLTrans::getString("choose_the_directory").c_str()); @@ -286,7 +267,7 @@ std::string LLDirPicker::getDirName() #else // not implemented -LLDirPicker::LLDirPicker() +LLDirPicker::LLDirPicker() { reset(); } @@ -325,7 +306,7 @@ void LLDirPickerThread::getFile() #endif } -//virtual +//virtual void LLDirPickerThread::run() { #if LL_WINDOWS @@ -339,7 +320,7 @@ void LLDirPickerThread::run() if (picker.getDir(&mProposedName, blocking)) { mResponses.push_back(picker.getDirName()); - } + } { LLMutexLock lock(sMutex); -- cgit v1.2.3 From c10e785e338aa63165c614d926ce882f4f116716 Mon Sep 17 00:00:00 2001 From: AiraYumi Date: Tue, 11 Jun 2024 14:06:54 +0900 Subject: Replace LL_X11 and LL_FLTK to LL_LINUX --- indra/newview/lldirpicker.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'indra/newview/lldirpicker.cpp') diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp index 75875551f4..957bd6a4d3 100644 --- a/indra/newview/lldirpicker.cpp +++ b/indra/newview/lldirpicker.cpp @@ -41,7 +41,7 @@ # include "llfilepicker.h" #endif -#ifdef LL_FLTK +#ifdef LL_LINUX #include "FL/Fl.H" #include "FL/Fl_Native_File_Chooser.H" #endif @@ -197,7 +197,7 @@ LLDirPicker::LLDirPicker() : mFileName(NULL), mLocked(false) { -#ifndef LL_FLTK +#ifndef LL_LINUX mFilePicker = new LLFilePicker(); #endif reset(); @@ -205,7 +205,7 @@ LLDirPicker::LLDirPicker() : LLDirPicker::~LLDirPicker() { -#ifndef LL_FLTK +#ifndef LL_LINUX delete mFilePicker; #endif } @@ -213,7 +213,7 @@ LLDirPicker::~LLDirPicker() void LLDirPicker::reset() { -#ifndef LL_FLTK +#ifndef LL_LINUX if (mFilePicker) mFilePicker->reset(); #else @@ -231,7 +231,7 @@ BOOL LLDirPicker::getDir(std::string* filename, bool blocking) return FALSE; } -#ifdef LL_FLTK +#ifdef LL_LINUX gViewerWindow->getWindow()->beforeDialog(); Fl_Native_File_Chooser flDlg; flDlg.title(LLTrans::getString("choose_the_directory").c_str()); @@ -254,7 +254,7 @@ BOOL LLDirPicker::getDir(std::string* filename, bool blocking) std::string LLDirPicker::getDirName() { -#ifndef LL_FLTK +#ifndef LL_LINUX if (mFilePicker) { return mFilePicker->getFirstFile(); -- cgit v1.2.3 From c4fc76efefd12c7cb1224dc8a748da2958f4a7f0 Mon Sep 17 00:00:00 2001 From: AiraYumi Date: Thu, 13 Jun 2024 10:39:05 +0900 Subject: Revert "Replace LL_X11 and LL_FLTK to LL_LINUX" --- indra/newview/lldirpicker.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'indra/newview/lldirpicker.cpp') diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp index 957bd6a4d3..75875551f4 100644 --- a/indra/newview/lldirpicker.cpp +++ b/indra/newview/lldirpicker.cpp @@ -41,7 +41,7 @@ # include "llfilepicker.h" #endif -#ifdef LL_LINUX +#ifdef LL_FLTK #include "FL/Fl.H" #include "FL/Fl_Native_File_Chooser.H" #endif @@ -197,7 +197,7 @@ LLDirPicker::LLDirPicker() : mFileName(NULL), mLocked(false) { -#ifndef LL_LINUX +#ifndef LL_FLTK mFilePicker = new LLFilePicker(); #endif reset(); @@ -205,7 +205,7 @@ LLDirPicker::LLDirPicker() : LLDirPicker::~LLDirPicker() { -#ifndef LL_LINUX +#ifndef LL_FLTK delete mFilePicker; #endif } @@ -213,7 +213,7 @@ LLDirPicker::~LLDirPicker() void LLDirPicker::reset() { -#ifndef LL_LINUX +#ifndef LL_FLTK if (mFilePicker) mFilePicker->reset(); #else @@ -231,7 +231,7 @@ BOOL LLDirPicker::getDir(std::string* filename, bool blocking) return FALSE; } -#ifdef LL_LINUX +#ifdef LL_FLTK gViewerWindow->getWindow()->beforeDialog(); Fl_Native_File_Chooser flDlg; flDlg.title(LLTrans::getString("choose_the_directory").c_str()); @@ -254,7 +254,7 @@ BOOL LLDirPicker::getDir(std::string* filename, bool blocking) std::string LLDirPicker::getDirName() { -#ifndef LL_LINUX +#ifndef LL_FLTK if (mFilePicker) { return mFilePicker->getFirstFile(); -- cgit v1.2.3