From daa1dcb5e8612da1aae8eaa146153a25e90dc60f Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 20 Mar 2019 18:12:56 +0100 Subject: [PATCH] FileManager: Use a GTextEditor for the location bar + tweak icons. --- Applications/FileManager/main.cpp | 13 +++++++------ Base/res/icons/16x16/delete.png | Bin 0 -> 448 bytes Base/res/icons/16x16/delete.rgb | Bin 0 -> 1024 bytes Base/res/icons/16x16/mkdir.png | Bin 0 -> 6070 bytes Base/res/icons/16x16/mkdir.rgb | Bin 0 -> 1024 bytes LibGUI/GTextEditor.cpp | 8 +++++++- 6 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 Base/res/icons/16x16/delete.png create mode 100644 Base/res/icons/16x16/delete.rgb create mode 100644 Base/res/icons/16x16/mkdir.png create mode 100644 Base/res/icons/16x16/mkdir.rgb diff --git a/Applications/FileManager/main.cpp b/Applications/FileManager/main.cpp index d7b4ab5c9d..2fa31f2dc2 100644 --- a/Applications/FileManager/main.cpp +++ b/Applications/FileManager/main.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include #include @@ -36,20 +36,21 @@ int main(int argc, char** argv) auto* main_toolbar = new GToolBar(widget); auto* location_toolbar = new GToolBar(widget); - auto* location_textbox = new GTextBox(location_toolbar); + location_toolbar->set_preferred_size({ 0, 21 }); + auto* location_textbox = new GTextEditor(GTextEditor::SingleLine, location_toolbar); auto* directory_table_view = new DirectoryTableView(widget); auto* statusbar = new GStatusBar(widget); - location_textbox->on_return_pressed = [directory_table_view] (GTextBox& textbox) { - directory_table_view->open(textbox.text()); + location_textbox->on_return_pressed = [directory_table_view] (auto& editor) { + directory_table_view->open(editor.text()); }; auto open_parent_directory_action = GAction::create("Open parent directory", { Mod_Alt, Key_Up }, GraphicsBitmap::load_from_file(GraphicsBitmap::Format::RGBA32, "/res/icons/parentdirectory16.rgb", { 16, 16 }), [directory_table_view] (const GAction&) { directory_table_view->open_parent_directory(); }); - auto mkdir_action = GAction::create("New directory...", GraphicsBitmap::load_from_file(GraphicsBitmap::Format::RGBA32, "/res/icons/mkdir16.rgb", { 16, 16 }), [] (const GAction&) { + auto mkdir_action = GAction::create("New directory...", GraphicsBitmap::load_from_file(GraphicsBitmap::Format::RGBA32, "/res/icons/16x16/mkdir.rgb", { 16, 16 }), [] (const GAction&) { dbgprintf("'New directory' action activated!\n"); }); @@ -57,7 +58,7 @@ int main(int argc, char** argv) dbgprintf("'Copy' action activated!\n"); }); - auto delete_action = GAction::create("Delete", GraphicsBitmap::load_from_file(GraphicsBitmap::Format::RGBA32, "/res/icons/trash16.rgb", { 16, 16 }), [] (const GAction&) { + auto delete_action = GAction::create("Delete", GraphicsBitmap::load_from_file(GraphicsBitmap::Format::RGBA32, "/res/icons/16x16/delete.rgb", { 16, 16 }), [] (const GAction&) { dbgprintf("'Delete' action activated!\n"); }); diff --git a/Base/res/icons/16x16/delete.png b/Base/res/icons/16x16/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..f271da46e779862d9f16218737f30b5e80975d3a GIT binary patch literal 448 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^PXNr}OT51_lPs z0*}aI1_nK45N51cYG1~{z`$PO>Fdh=m{~-S&GJIZ{8$DCMqf`C#}JFtOE3F-PYD!Z z`*7d-T$+HK0egi&GCz=QTyONhk)*~iJl7*c#r5by)*y>Z}^uAC)w`cF?ea0^7rRR#zSH816zjONkEgBZxJ@X$tRo5!N`6{fU z|MK2FoevcEFHBz$|M|4tkCP`#@2PXI?vY*0m_M^?!Lf|SxhbFYo?6?qv(GuTmE(0x zRN~k5f)CUtJKOXoSNn+kD4cWs;Wa7$TP7X1MfJiWydSZPh)2CGSLx^$d31itw2G-a zTX!6N-Wxq@!_K^;_boP`R7+^ znC;2UAx*cZJYs)-)1yq>V_lJA!p{dhpOk*c&s_6K(f7gnIkx3HPHBWPzj#`Gt?K#B xw$!efEVZ&655x~w&dPng`^+2NQ~y8B{m)R7<|V{h8Q2es2~Sr)mvv4FO#o>l!m$7V literal 0 HcmV?d00001 diff --git a/Base/res/icons/16x16/delete.rgb b/Base/res/icons/16x16/delete.rgb new file mode 100644 index 0000000000000000000000000000000000000000..460cd225d1b986aa7672378ed3e470c3d3338ad6 GIT binary patch literal 1024 zcmZRe8fegDV3_)!fuTy5I3v51AnHM?LHeft7ZREAA0h_gPm~AAVB&Tagqji~h#>oxJKN0vqQD@ZR4;|f!JdO_}p^GEmxSuHj;%q|dJV1`fu;)8Id9zqPA z1(Jv1hzN99{BEe#Ldb*60EGdj2@o||wwN*?Jur;Vjj;5GZURg%h;C6smqq1cQv(u% aVO(y9nF5mUP=@g!G)OEejQIQq(FFhiK7h~w literal 0 HcmV?d00001 diff --git a/Base/res/icons/16x16/mkdir.png b/Base/res/icons/16x16/mkdir.png new file mode 100644 index 0000000000000000000000000000000000000000..012fff339ddc67438721beb9b945998f2fa8a537 GIT binary patch literal 6070 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 K=d#Wzp$Pz53m5?a literal 0 HcmV?d00001 diff --git a/Base/res/icons/16x16/mkdir.rgb b/Base/res/icons/16x16/mkdir.rgb new file mode 100644 index 0000000000000000000000000000000000000000..a32de690b742ec64965a1805428ad04e3714de4f GIT binary patch literal 1024 zcmZReGidtp|06alZPWYzBV%l8Kw?cl{{IKj$QY(iJD~JG48z1=bo2XfVDmxxL1OLS z|GtEo0pi2-O*!!9KQ7$$@%R7e@BjaUXpkOs{V;vqJ750q-1+i<$JS^6o4)@053&=4 zL3&{r#0O!J86dMj_Jj0y?|kvUYsd5d9owG%Z{7Ulf6Jyv{~Omo_}{Sh?*F!TKf(65 zzWV|83rH^rBkS+l@dB*3ZS$l5EgK*GZ`g4EfBov)|Jy(P{$IJ`2G}hni!S^Jg$GD4 z2qWw7-2Uu;>y{_~n>RlA-?aYT|N6Ce|JSa(`M+xUwf_}MFN5_L%sq$G{Dqa zzi#c_|1~Rb{;ynq{eSt=%l}IkUHsqpTglength() && !memcmp(text.characters(), m_lines[0]->characters(), text.length())) + return; + m_lines.clear(); int start_of_current_line = 0; @@ -44,7 +47,10 @@ void GTextEditor::set_text(const String& text) } add_line(i); update_content_size(); - set_cursor(0, 0); + if (is_single_line()) + set_cursor(0, m_lines[0]->length()); + else + set_cursor(0, 0); update(); }