From 47cb79a7f075174e411d05d9b7d1c50595c38e08 Mon Sep 17 00:00:00 2001 From: Markus Gans Date: Sat, 5 Dec 2020 23:54:40 +0100 Subject: [PATCH] Small fixes --- examples/treeview.cpp | 24 ++++++++++----------- src/fcharmap.cpp | 2 +- src/ffiledialog.cpp | 37 --------------------------------- src/fmessagebox.cpp | 30 -------------------------- src/fterm.cpp | 14 +++++-------- src/ftermlinux.cpp | 4 ++-- src/fvterm.cpp | 2 +- src/include/final/fc.h | 7 +++++++ src/include/final/fcallback.h | 3 +-- src/include/final/fcharmap.h | 2 +- src/include/final/ffiledialog.h | 9 +++++--- src/include/final/fmessagebox.h | 11 +++++----- src/include/final/ftermlinux.h | 4 ++-- 13 files changed, 44 insertions(+), 105 deletions(-) diff --git a/examples/treeview.cpp b/examples/treeview.cpp index 340b242c..a1ebf6e6 100644 --- a/examples/treeview.cpp +++ b/examples/treeview.cpp @@ -161,12 +161,12 @@ class Treeview final : public finalcut::FDialog struct TreeItem; // forward declaration // Methods - auto initAfrica() -> std::initializer_list const; - auto initAsia() -> std::initializer_list const; - auto initEurope() -> std::initializer_list const; - auto initNorthAmerica() -> std::initializer_list const; - auto initSouthAmerica() -> std::initializer_list const; - auto initOceania() -> std::initializer_list const; + auto initAfrica() const -> std::initializer_list; + auto initAsia() const -> std::initializer_list; + auto initEurope() const -> std::initializer_list; + auto initNorthAmerica() const -> std::initializer_list; + auto initSouthAmerica() const -> std::initializer_list; + auto initOceania() const -> std::initializer_list; void adjustSize() override; // Event handler @@ -275,7 +275,7 @@ Treeview::Treeview (finalcut::FWidget* parent) } //---------------------------------------------------------------------- -auto Treeview::initAfrica() -> std::initializer_list const +auto Treeview::initAfrica() const -> std::initializer_list { static const auto list = std::initializer_list { @@ -306,7 +306,7 @@ auto Treeview::initAfrica() -> std::initializer_list const } //---------------------------------------------------------------------- -auto Treeview::initAsia() -> std::initializer_list const +auto Treeview::initAsia() const -> std::initializer_list { static const auto list = std::initializer_list { @@ -334,7 +334,7 @@ auto Treeview::initAsia() -> std::initializer_list const } //---------------------------------------------------------------------- -auto Treeview::initEurope() -> std::initializer_list const +auto Treeview::initEurope() const -> std::initializer_list { static const auto list = std::initializer_list { @@ -362,7 +362,7 @@ auto Treeview::initEurope() -> std::initializer_list const } //---------------------------------------------------------------------- -auto Treeview::initNorthAmerica() -> std::initializer_list const +auto Treeview::initNorthAmerica() const -> std::initializer_list { static const auto list = std::initializer_list { @@ -379,7 +379,7 @@ auto Treeview::initNorthAmerica() -> std::initializer_list c } //---------------------------------------------------------------------- -auto Treeview::initSouthAmerica() -> std::initializer_list const +auto Treeview::initSouthAmerica() const -> std::initializer_list { static const auto list = std::initializer_list { @@ -398,7 +398,7 @@ auto Treeview::initSouthAmerica() -> std::initializer_list c } //---------------------------------------------------------------------- -auto Treeview::initOceania() -> std::initializer_list const +auto Treeview::initOceania() const -> std::initializer_list { static const auto list = std::initializer_list { diff --git a/src/fcharmap.cpp b/src/fcharmap.cpp index 7c6c2097..180b9930 100644 --- a/src/fcharmap.cpp +++ b/src/fcharmap.cpp @@ -161,7 +161,7 @@ std::array, 115> character = * (2) Only supported in use with newfont */ -constexpr std::array, 39> vt100_key_to_utf8 = +constexpr std::array, 39> dec_special_graphics = {{ {{fc::vt100_key_rarrow , fc::BlackRightPointingPointer}}, // ► {{fc::vt100_key_larrow , fc::BlackLeftPointingPointer}}, // ◄ diff --git a/src/ffiledialog.cpp b/src/ffiledialog.cpp index 4dbc97e2..a37d44a5 100644 --- a/src/ffiledialog.cpp +++ b/src/ffiledialog.cpp @@ -102,16 +102,6 @@ FFileDialog::FFileDialog (FWidget* parent) init(); } -//---------------------------------------------------------------------- -FFileDialog::FFileDialog (const FFileDialog& fdlg) - : FDialog{fdlg.getParentWidget()} -{ - if ( fdlg.directory ) - setPath(fdlg.directory); - - init(); -} - //---------------------------------------------------------------------- FFileDialog::FFileDialog ( const FString& dirname , const FString& filter @@ -135,33 +125,6 @@ FFileDialog::~FFileDialog() // destructor // public methods of FFileDialog -//---------------------------------------------------------------------- -FFileDialog& FFileDialog::operator = (const FFileDialog& fdlg) -{ - if ( &fdlg == this ) - { - return *this; - } - else - { - clear(); - - if ( fdlg.getParentWidget() ) - fdlg.getParentWidget()->addChild (this); - - directory = fdlg.directory; - filter_pattern = fdlg.filter_pattern; - dlg_type = fdlg.dlg_type; - show_hidden = fdlg.show_hidden; - - if ( directory ) - setPath(directory); - - init(); - return *this; - } -} - //---------------------------------------------------------------------- FString FFileDialog::getSelectedFile() const { diff --git a/src/fmessagebox.cpp b/src/fmessagebox.cpp index a55cb3f2..e030d12b 100644 --- a/src/fmessagebox.cpp +++ b/src/fmessagebox.cpp @@ -77,36 +77,6 @@ FMessageBox::~FMessageBox() noexcept = default; // destructor // public methods of FMessageBox -//---------------------------------------------------------------------- -FMessageBox& FMessageBox::operator = (const FMessageBox& mbox) -{ - if ( &mbox == this ) - { - return *this; - } - else - { - if ( mbox.getParentWidget() ) - mbox.getParentWidget()->addChild (this); - - setTitlebarText (mbox.getTitlebarText()); - headline_text = mbox.headline_text; - text = mbox.text; - text_components = mbox.text_components; - max_line_width = mbox.max_line_width; - center_text = mbox.center_text; - emphasis_color = mbox.emphasis_color; - num_buttons = mbox.num_buttons; - text_num_lines = mbox.text_num_lines; - button_digit[0] = mbox.button_digit[0]; - button_digit[1] = mbox.button_digit[1]; - button_digit[2] = mbox.button_digit[2]; - init(); - - return *this; - } -} - //---------------------------------------------------------------------- void FMessageBox::setHeadline (const FString& headline) { diff --git a/src/fterm.cpp b/src/fterm.cpp index 8fe5e285..508541f6 100644 --- a/src/fterm.cpp +++ b/src/fterm.cpp @@ -1287,18 +1287,14 @@ void FTerm::init_alt_charset() } } - enum Column : int - { - vt100_key = 0, - utf8_char = 1 - }; - // Update array 'character' with discovered VT100 pairs - for (auto&& pair : fc::vt100_key_to_utf8) + for (auto&& pair : fc::dec_special_graphics) { - const auto keyChar = uChar(pair[vt100_key]); + const auto vt100 = std::size_t(fc::DECSpecialGraphics::vt100); + const auto utf8 = std::size_t(fc::DECSpecialGraphics::utf8); + const auto keyChar = uChar(pair[vt100]); const auto altChar = uChar(vt100_alt_char[keyChar]); - const auto utf8char = uInt(pair[utf8_char]); + const auto utf8char = uInt(pair[utf8]); const auto p = std::find_if ( fc::character.begin() , fc::character.end() , [&utf8char] (std::array entry) diff --git a/src/ftermlinux.cpp b/src/ftermlinux.cpp index c442fbb5..e36dc4e0 100644 --- a/src/ftermlinux.cpp +++ b/src/ftermlinux.cpp @@ -815,7 +815,7 @@ void FTermLinux::writeAttributeController (uChar index, uChar data) const } //---------------------------------------------------------------------- -inline uChar FTermLinux::getAttributeMode() +inline uChar FTermLinux::getAttributeMode() const { // Gets the attribute mode value from the vga attribute controller static constexpr uChar attrib_mode = 0x10; @@ -823,7 +823,7 @@ inline uChar FTermLinux::getAttributeMode() } //---------------------------------------------------------------------- -inline void FTermLinux::setAttributeMode (uChar data) +inline void FTermLinux::setAttributeMode (uChar data) const { // Sets the attribute mode value from the vga attribute controller static constexpr uChar attrib_mode = 0x10; diff --git a/src/fvterm.cpp b/src/fvterm.cpp index 40b0b57e..8012c221 100644 --- a/src/fvterm.cpp +++ b/src/fvterm.cpp @@ -307,7 +307,7 @@ void FVTerm::addPreprocessingHandler ( const FVTerm* instance { delPreprocessingHandler (instance); auto obj = make_unique \ - (instance, std::forward(function)); + (instance, std::move(function)); print_area->preproc_list.emplace_back(std::move(obj)); } } diff --git a/src/include/final/fc.h b/src/include/final/fc.h index 735b89a0..1978c950 100644 --- a/src/include/final/fc.h +++ b/src/include/final/fc.h @@ -92,6 +92,13 @@ enum encoding UNKNOWN }; +// vt100 <-> utf-8 +enum class DECSpecialGraphics : std::size_t +{ + vt100 = 0, // First column + utf8 = 1 // Second column +}; + // VT100 line graphic keys enum vt100_keys : char { diff --git a/src/include/final/fcallback.h b/src/include/final/fcallback.h index 5341c760..0100afff 100644 --- a/src/include/final/fcallback.h +++ b/src/include/final/fcallback.h @@ -55,8 +55,7 @@ class FWidget; struct FCallbackData { // Constructor - FCallbackData() - { } + FCallbackData() = default; template FCallbackData (const FString& s, FWidget* i, FuncPtr m, const FCall& c) diff --git a/src/include/final/fcharmap.h b/src/include/final/fcharmap.h index 8aafa7e8..033fe16a 100644 --- a/src/include/final/fcharmap.h +++ b/src/include/final/fcharmap.h @@ -39,7 +39,7 @@ namespace fc { extern std::array, 115> character; -extern const std::array, 39> vt100_key_to_utf8; +extern const std::array, 39> dec_special_graphics; extern const std::array, 256> cp437_ucs; extern const std::array, 227> halfwidth_fullwidth; diff --git a/src/include/final/ffiledialog.h b/src/include/final/ffiledialog.h index 22d1787b..8ab7c239 100644 --- a/src/include/final/ffiledialog.h +++ b/src/include/final/ffiledialog.h @@ -96,17 +96,20 @@ class FFileDialog : public FDialog // Constructors explicit FFileDialog (FWidget* = nullptr); - FFileDialog (const FFileDialog&); // copy constructor + FFileDialog ( const FString& , const FString& , DialogType = DialogType::Open , FWidget* = nullptr ); + // Disable copy constructor + FFileDialog (const FFileDialog&) = delete; + // Destructor ~FFileDialog() override; - // copy assignment operator (=) - FFileDialog& operator = (const FFileDialog&); + // Disable copy assignment operator (=) + FFileDialog& operator = (const FFileDialog&) = delete; // Accessors FString getClassName() const override; diff --git a/src/include/final/fmessagebox.h b/src/include/final/fmessagebox.h index d44b5553..e199b34e 100644 --- a/src/include/final/fmessagebox.h +++ b/src/include/final/fmessagebox.h @@ -95,7 +95,8 @@ class FMessageBox : public FDialog // Constructors explicit FMessageBox (FWidget* = nullptr); - FMessageBox (const FMessageBox&) = default; // copy constructor + // Disable copy constructor + FMessageBox (const FMessageBox&) = delete; FMessageBox ( const FString&, const FString& , ButtonType, ButtonType, ButtonType @@ -104,8 +105,8 @@ class FMessageBox : public FDialog // Destructor ~FMessageBox() noexcept override; - // copy assignment operator (=) - FMessageBox& operator = (const FMessageBox&); + // Disable copy assignment operator (=) + FMessageBox& operator = (const FMessageBox&) = delete; // Accessor FString getClassName() const override; @@ -151,6 +152,7 @@ class FMessageBox : public FDialog // Using-declaration using FButtons = std::array, MAX_BUTTONS>; + using FButtonsDigit = std::array; // Methods void init(); @@ -165,12 +167,11 @@ class FMessageBox : public FDialog FString headline_text{}; FString text{}; FStringList text_components{}; - FButtons button{}; std::size_t max_line_width{0}; FColor emphasis_color{getColorTheme()->dialog_emphasis_fg}; ButtonType result_code{ButtonType::Reject}; - ButtonType button_digit[MAX_BUTTONS]{ButtonType::Reject}; + FButtonsDigit button_digit{ButtonType::Reject}; std::size_t num_buttons{0}; std::size_t text_num_lines{0}; bool center_text{false}; diff --git a/src/include/final/ftermlinux.h b/src/include/final/ftermlinux.h index 0eb59ffb..3e589c0a 100644 --- a/src/include/final/ftermlinux.h +++ b/src/include/final/ftermlinux.h @@ -156,8 +156,8 @@ class FTermLinux final uInt16 getInputStatusRegisterOne() const; uChar readAttributeController (uChar) const; void writeAttributeController (uChar, uChar) const; - uChar getAttributeMode(); - void setAttributeMode (uChar); + uChar getAttributeMode() const; + void setAttributeMode (uChar) const; int setBlinkAsIntensity (bool); bool has9BitCharacters(); void getVGAPalette();