blob: 4b540a7fcdf077640e6eab0249f23ccb35a0fcb1 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// This file implements common select dialog functionality between GTK and KDE.
#include "ui/shell_dialogs/select_file_dialog_linux.h"
#include "base/files/file_util.h"
#include "base/notreached.h"
#include "base/threading/thread_restrictions.h"
namespace ui {
base::FilePath* SelectFileDialogLinux::last_saved_path_ = nullptr;
base::FilePath* SelectFileDialogLinux::last_opened_path_ = nullptr;
SelectFileDialogLinux::SelectFileDialogLinux(
Listener* listener,
std::unique_ptr<ui::SelectFilePolicy> policy)
: SelectFileDialog(listener, std::move(policy)) {
if (!last_saved_path_) {
last_saved_path_ = new base::FilePath();
last_opened_path_ = new base::FilePath();
}
}
SelectFileDialogLinux::~SelectFileDialogLinux() = default;
void SelectFileDialogLinux::ListenerDestroyed() {
listener_ = nullptr;
}
bool SelectFileDialogLinux::CallDirectoryExistsOnUIThread(
const base::FilePath& path) {
base::ScopedAllowBlocking scoped_allow_blocking;
return base::DirectoryExists(path);
}
} // namespace ui