[FL-1235] Cut long names (#494)

* fix typo, elements_string_fit_width added
* add string_fit_witdt to fileselect module

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
its your bedtime
2021-05-26 19:01:59 +03:00
committed by GitHub
parent 502f449904
commit 1cfb16d9a7
6 changed files with 41 additions and 28 deletions

View File

@@ -200,7 +200,7 @@ static uint32_t archive_previous_callback(void* context) {
}
/* file menu */
static void archive_add_to_favorites(ArchiveApp* archive) {
static void archive_add_to_favourites(ArchiveApp* archive) {
furi_assert(archive);
FS_Common_Api* common_api = &archive->fs_api->common;
@@ -212,7 +212,7 @@ static void archive_add_to_favorites(ArchiveApp* archive) {
string_cat(buffer_src, "/");
string_cat(buffer_src, archive->browser.name);
string_init_set_str(buffer_dst, "/favorites/");
string_init_set_str(buffer_dst, "/favourites/");
string_cat(buffer_dst, archive->browser.name);
common_api->rename(string_get_cstr(buffer_src), string_get_cstr(buffer_dst));
@@ -345,7 +345,7 @@ static void archive_file_menu_callback(ArchiveApp* archive) {
case 1:
string_set(archive->browser.name, selected->name);
archive_add_to_favorites(archive);
archive_add_to_favourites(archive);
archive_close_file_menu(archive);
break;
case 2:
@@ -521,7 +521,7 @@ ArchiveApp* archive_alloc() {
view_dispatcher_attach_to_gui(
archive->view_dispatcher, archive->gui, ViewDispatcherTypeFullscreen);
view_dispatcher_switch_to_view(archive->view_dispatcher, ArchiveTabFavorites);
view_dispatcher_switch_to_view(archive->view_dispatcher, ArchiveTabFavourites);
return archive;
}

View File

@@ -23,7 +23,7 @@ typedef enum {
} ArchiveViewEnum;
typedef enum {
ArchiveTabFavorites,
ArchiveTabFavourites,
ArchiveTabIButton,
ArchiveTabNFC,
ArchiveTabSubOne,
@@ -42,7 +42,7 @@ static const char* known_ext[] = {
};
static const char* tab_default_paths[] = {
[ArchiveTabFavorites] = "favorites",
[ArchiveTabFavourites] = "favourites",
[ArchiveTabIButton] = "ibutton",
[ArchiveTabNFC] = "nfc",
[ArchiveTabSubOne] = "subone",

View File

@@ -1,7 +1,7 @@
#include "archive_views.h"
static const char* ArchiveTabNames[] =
{"Favorites", "iButton", "NFC", "SubOne", "Rfid", "Infared", "Browser"};
{"Favourites", "iButton", "NFC", "SubOne", "Rfid", "Infared", "Browser"};
static const IconName ArchiveItemIcons[] = {
[ArchiveFileTypeIButton] = I_ibutt_10px,
@@ -59,20 +59,6 @@ static void trim_file_ext(string_t name) {
}
}
static void format_filename_buffer(Canvas* canvas, string_t name, ArchiveFileTypeEnum type) {
furi_assert(name);
size_t s_len = strlen(string_get_cstr(name));
uint16_t len_px = canvas_string_width(canvas, string_get_cstr(name));
if(is_known_app(type)) trim_file_ext(name);
if(len_px > MAX_LEN_PX) {
string_mid(name, 0, s_len - (size_t)((len_px - MAX_LEN_PX) / ((len_px / s_len) + 2) + 2));
string_cat(name, "...");
}
}
static void archive_draw_frame(Canvas* canvas, uint16_t idx, bool scrollbar) {
canvas_set_color(canvas, ColorBlack);
canvas_draw_box(canvas, 0, 15 + idx * FRAME_HEIGHT, scrollbar ? 122 : 127, FRAME_HEIGHT);
@@ -101,7 +87,9 @@ static void draw_list(Canvas* canvas, ArchiveViewModel* model) {
ArchiveFile_t* file = files_array_get(model->files, CLAMP(idx, array_size - 1, 0));
string_set(str_buff, file->name);
format_filename_buffer(canvas, str_buff, file->type);
if(is_known_app(file->type)) trim_file_ext(str_buff);
elements_string_fit_width(canvas, str_buff, MAX_LEN_PX);
if(model->idx == idx) {
archive_draw_frame(canvas, i, scrollbar);