Browse Source

Add default file extensions

merge-requests/365/head
Jørgen Lien Sellæg 10 years ago
parent
commit
eb1836b9ec
  1. 6
      src/dialogs.h
  2. 11
      src/dialogs_win.cc

6
src/dialogs.h

@ -36,11 +36,9 @@ public:
/** Returns the selected item's path as a string */
std::string show();
private:
protected:
IFileDialog * dialog;
DWORD options;
const std::vector<std::wstring> text_files = {L"Text files", L"*.txt;*.c"};
const std::vector<std::wstring> all_files = {L"", L""};
};
class OpenDialog : public CommonDialog {
@ -50,6 +48,8 @@ public:
class SaveDialog : public CommonDialog {
public:
SaveDialog(std::string &&title, unsigned option);
private:
std::vector<COMDLG_FILTERSPEC> extensions;
};
#endif // __WIN32

11
src/dialogs_win.cc

@ -24,8 +24,9 @@ void CommonDialog::set_title(std::string &&title) {
void CommonDialog::add_option(unsigned option) {
check(dialog->SetOptions(options | option), "Failed to set options");
}
void CommonDialog::set_default_file_extension(std::string &&file_extensions) {
void CommonDialog::set_default_file_extension(std::string &&file_extension) {
auto ptr = boost::locale::conv::utf_to_utf<wchar_t>(file_extension).data();
check(dialog->SetDefaultExtension(ptr), "Failed to set file extension");
}
void CommonDialog::set_default_folder(const std::string &directory_path) {
IShellItem * folder = nullptr;
@ -62,6 +63,12 @@ SaveDialog::SaveDialog(std::string &&title, unsigned option) : CommonDialog(CLSI
add_option(option);
auto dirs = Singleton::directories()->current_path;
set_default_folder(dirs.empty() ? boost::filesystem::current_path().string() : dirs.string());
extensions.emplace_back(COMDLG_FILTERSPEC{L"Default", L"*.h;*.cpp"});
extensions.emplace_back(COMDLG_FILTERSPEC{L"GoogleStyle", L"*.cc;*.h"});
extensions.emplace_back(COMDLG_FILTERSPEC{L"BoostStyle", L"*.hpp;*.cpp"});
extensions.emplace_back(COMDLG_FILTERSPEC{L"Other", L"*.cxx;*.c"});
check(dialog->SetFileTypes(extensions.size(), extensions.data()), "Failed to set extensions");
set_default_file_extension("Default");
}
// DIALOGS }}

Loading…
Cancel
Save