add simple preview code without colorize
This commit is contained in:
parent
740cb023a8
commit
ea80038121
@ -50,14 +50,14 @@ namespace rrr
|
|||||||
set_history_cursor_position();
|
set_history_cursor_position();
|
||||||
f = his.data.at(history_cursor_position);
|
f = his.data.at(history_cursor_position);
|
||||||
}
|
}
|
||||||
catch(...) { hack::error()("Dont set history"); }
|
catch(...) {}
|
||||||
break;
|
break;
|
||||||
case TYPE_WIN::NAVIGATION:
|
case TYPE_WIN::NAVIGATION:
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
f = nav.data.at(navigation_cursor_position);
|
f = nav.data.at(navigation_cursor_position);
|
||||||
}
|
}
|
||||||
catch(...) { hack::error()("Dont set navigation"); }
|
catch(...) {}
|
||||||
break;
|
break;
|
||||||
case TYPE_WIN::PREVIEW:
|
case TYPE_WIN::PREVIEW:
|
||||||
try
|
try
|
||||||
@ -65,7 +65,7 @@ namespace rrr
|
|||||||
set_preview_cursor_position();
|
set_preview_cursor_position();
|
||||||
f = prev.data.at(preview_cursor_position);
|
f = prev.data.at(preview_cursor_position);
|
||||||
}
|
}
|
||||||
catch(...) { hack::error()("Dont set preview"); }
|
catch(...) {}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -255,10 +255,9 @@ namespace rrr::layers::gui
|
|||||||
set_delta(MOVE_DIRECTION::UP);
|
set_delta(MOVE_DIRECTION::UP);
|
||||||
set_scroll();
|
set_scroll();
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
if (key.get_keycode() == try_engine::key::J)
|
if (key.get_keycode() == try_engine::key::J)
|
||||||
{
|
{
|
||||||
cnt->increment_position(STEP_DOWN);
|
cnt->increment_position(STEP_DOWN);
|
||||||
@ -284,6 +283,9 @@ namespace rrr::layers::gui
|
|||||||
set_scroll();
|
set_scroll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HERE начинаем тут
|
||||||
|
// если дирректория пуста и туда заъодить, то происходит краш приложения
|
||||||
|
// сотрим тут: void content::navigation_right()
|
||||||
if (key.get_keycode() == try_engine::key::L)
|
if (key.get_keycode() == try_engine::key::L)
|
||||||
{
|
{
|
||||||
cnt->navigation_right();
|
cnt->navigation_right();
|
||||||
@ -352,8 +354,9 @@ namespace rrr::layers::gui
|
|||||||
em->execute(types::event_type::SHOW_HELP_DIALOG, nullptr);
|
em->execute(types::event_type::SHOW_HELP_DIALOG, nullptr);
|
||||||
freeze = true;
|
freeze = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
detect_img();
|
detect_file();
|
||||||
}
|
}
|
||||||
|
|
||||||
void navigation::released(system_event& e)
|
void navigation::released(system_event& e)
|
||||||
@ -455,11 +458,15 @@ namespace rrr::layers::gui
|
|||||||
selected_file = cnt->get_selected_file(TYPE_WIN::NAVIGATION);
|
selected_file = cnt->get_selected_file(TYPE_WIN::NAVIGATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
void navigation::detect_img()
|
void navigation::detect_file()
|
||||||
{
|
{
|
||||||
|
if (std::filesystem::is_directory(selected_file.path)) return;
|
||||||
|
|
||||||
if (selected_file.path.extension() == ".jpg" ||
|
if (selected_file.path.extension() == ".jpg" ||
|
||||||
selected_file.path.extension() == ".jpeg" ||
|
selected_file.path.extension() == ".jpeg" ||
|
||||||
selected_file.path.extension() == ".png")
|
selected_file.path.extension() == ".png")
|
||||||
em->execute(types::event_type::SHOW_IMG, selected_file.path);
|
em->execute(types::event_type::SHOW_IMG, selected_file.path);
|
||||||
|
else
|
||||||
|
em->execute(types::event_type::SHOW_SRC, selected_file.path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,8 @@ namespace rrr::layers::gui
|
|||||||
void set_scroll();
|
void set_scroll();
|
||||||
void paste_from_copy(); // вставка после копирования
|
void paste_from_copy(); // вставка после копирования
|
||||||
void paste_from_cut(); // вставки после вырезания
|
void paste_from_cut(); // вставки после вырезания
|
||||||
void detect_img();
|
void detect_file(); // определяем не кортинка ли это или определяем не является ли
|
||||||
|
// это что-то типа кода, который можно вывести на просмотр
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ namespace rrr::layers::gui
|
|||||||
{
|
{
|
||||||
make_media = false;
|
make_media = false;
|
||||||
tx.make();
|
tx.make();
|
||||||
frame = cv::imread(media_path);
|
frame = cv::imread(src_path);
|
||||||
cv::cvtColor(frame, frame, cv::COLOR_BGR2RGBA);
|
cv::cvtColor(frame, frame, cv::COLOR_BGR2RGBA);
|
||||||
tx.bind(frame);
|
tx.bind(frame);
|
||||||
media_show = true;
|
media_show = true;
|
||||||
@ -53,6 +53,13 @@ namespace rrr::layers::gui
|
|||||||
if (media_show)
|
if (media_show)
|
||||||
tx.draw(ImVec2(pos.x + 830.f, pos.y), ImVec2(width + 850.f, frame.rows / 1.6f));
|
tx.draw(ImVec2(pos.x + 830.f, pos.y), ImVec2(width + 850.f, frame.rows / 1.6f));
|
||||||
|
|
||||||
|
if (src_show)
|
||||||
|
{
|
||||||
|
TR_PUSH_FONT(MEDIUM, 18);
|
||||||
|
ImGui::TextUnformatted(src_data.data());
|
||||||
|
TR_POP_FONT();
|
||||||
|
}
|
||||||
|
|
||||||
for (files::iterator it = begin; it != end; ++it)
|
for (files::iterator it = begin; it != end; ++it)
|
||||||
{
|
{
|
||||||
auto item = *it;
|
auto item = *it;
|
||||||
@ -114,7 +121,9 @@ namespace rrr::layers::gui
|
|||||||
case types::event_type::NAVIGATION_DOWN:
|
case types::event_type::NAVIGATION_DOWN:
|
||||||
case types::event_type::NAVIGATION_LEFT:
|
case types::event_type::NAVIGATION_LEFT:
|
||||||
case types::event_type::NAVIGATION_RIGHT:
|
case types::event_type::NAVIGATION_RIGHT:
|
||||||
media_path.clear();
|
src_path.clear();
|
||||||
|
src_data.clear();
|
||||||
|
src_show = false;
|
||||||
media_show = false;
|
media_show = false;
|
||||||
selected_file = cnt->get_selected_file(TYPE_WIN::PREVIEW);
|
selected_file = cnt->get_selected_file(TYPE_WIN::PREVIEW);
|
||||||
cursor_position = 0;
|
cursor_position = 0;
|
||||||
@ -123,9 +132,21 @@ namespace rrr::layers::gui
|
|||||||
set_scroll();
|
set_scroll();
|
||||||
break;
|
break;
|
||||||
case types::event_type::SHOW_IMG:
|
case types::event_type::SHOW_IMG:
|
||||||
media_path = std::any_cast<std::filesystem::path>(value);
|
src_path = std::any_cast<std::filesystem::path>(value);
|
||||||
make_media = true;
|
make_media = true;
|
||||||
break;
|
break;
|
||||||
|
case types::event_type::SHOW_SRC:
|
||||||
|
src_path = std::any_cast<std::filesystem::path>(value);
|
||||||
|
// HERE
|
||||||
|
// пока не подсвечиваем, для этого нужно видимо написать свой токенайзер
|
||||||
|
// и разбирать всю баш строку на наличие цветов
|
||||||
|
// буз этого пока поживешь, не сломаешься!
|
||||||
|
// src_data = hack::utils::unix_cmd("bat --style=plain --color=always " + src_path.string());
|
||||||
|
if (std::filesystem::is_empty(src_path)) src_data = "no data";
|
||||||
|
else
|
||||||
|
src_data = hack::utils::unix_cmd("cat " + src_path.string());
|
||||||
|
src_show = true;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -42,12 +42,14 @@ namespace rrr::layers::gui
|
|||||||
int delta = 0;
|
int delta = 0;
|
||||||
enum class MOVE_DIRECTION { UP, DOWN };
|
enum class MOVE_DIRECTION { UP, DOWN };
|
||||||
|
|
||||||
std::filesystem::path media_path;
|
|
||||||
try_engine::texture tx;
|
try_engine::texture tx;
|
||||||
cv::Mat frame;
|
cv::Mat frame;
|
||||||
cv::VideoCapture cap;
|
cv::VideoCapture cap;
|
||||||
|
std::filesystem::path src_path;
|
||||||
bool media_show = false;
|
bool media_show = false;
|
||||||
bool make_media = false;
|
bool make_media = false;
|
||||||
|
bool src_show = false;
|
||||||
|
std::string src_data; // данные для показа кода из файла
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const ImVec4 dir_color = func::get_IMGUI_color<ImVec4>(91.f, 128.f, 191.f);
|
const ImVec4 dir_color = func::get_IMGUI_color<ImVec4>(91.f, 128.f, 191.f);
|
||||||
|
@ -284,7 +284,7 @@ namespace rrr::layers::gui
|
|||||||
|
|
||||||
void dialogs::draw_help_dialog()
|
void dialogs::draw_help_dialog()
|
||||||
{
|
{
|
||||||
height = try_engine::application::get()->get_window()->height() / 2.7f;
|
height = try_engine::application::get()->get_window()->height() / 2.5f;
|
||||||
|
|
||||||
TR_PUSH_FONT(MEDIUM, 16);
|
TR_PUSH_FONT(MEDIUM, 16);
|
||||||
|
|
||||||
@ -300,7 +300,7 @@ namespace rrr::layers::gui
|
|||||||
ImGui::TextUnformatted(label.data());
|
ImGui::TextUnformatted(label.data());
|
||||||
|
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
ImGui::TextUnformatted("Копирование: С / backspace");
|
ImGui::TextUnformatted("Копирование: c / backspace");
|
||||||
ImGui::TextUnformatted("Вставка: P");
|
ImGui::TextUnformatted("Вставка: P");
|
||||||
ImGui::TextUnformatted("Удаление: D");
|
ImGui::TextUnformatted("Удаление: D");
|
||||||
ImGui::TextUnformatted("Переименование: R");
|
ImGui::TextUnformatted("Переименование: R");
|
||||||
@ -309,6 +309,8 @@ namespace rrr::layers::gui
|
|||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
ImGui::TextUnformatted("Перемещение в начало: gg");
|
ImGui::TextUnformatted("Перемещение в начало: gg");
|
||||||
ImGui::TextUnformatted("Перемещение в конец: G");
|
ImGui::TextUnformatted("Перемещение в конец: G");
|
||||||
|
ImGui::TextUnformatted("Быстрое перемещение вверх: J");
|
||||||
|
ImGui::TextUnformatted("Быстрое перемещение вниз: K");
|
||||||
|
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
ImGui::TextUnformatted("Выход из помощи: F1");
|
ImGui::TextUnformatted("Выход из помощи: F1");
|
||||||
|
@ -18,7 +18,8 @@ namespace rrr::types
|
|||||||
SHOW_RENAME_FILE_DIALOG,
|
SHOW_RENAME_FILE_DIALOG,
|
||||||
RENAME_FILE,
|
RENAME_FILE,
|
||||||
SHOW_HELP_DIALOG,
|
SHOW_HELP_DIALOG,
|
||||||
SHOW_IMG
|
SHOW_IMG,
|
||||||
|
SHOW_SRC // показываем содержимое файла если это код
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user