LCOV - code coverage report
Current view: top level - dbe/src/object - CustomLineEdit.cpp (source / functions) Coverage Total Hit
Test: code.result Lines: 0.0 % 120 0
Test Date: 2026-02-16 10:18:04 Functions: 0.0 % 18 0

            Line data    Source code
       1              : /// Include Qt Headers
       2              : #include <QValidator>
       3              : #include <QApplication>
       4              : #include <QMenu>
       5              : #include <QContextMenuEvent>
       6              : /// Include DBE
       7              : #include "dbe/CustomLineEdit.hpp"
       8              : #include "dbe/StyleUtility.hpp"
       9              : 
      10            0 : dbe::CustomLineEdit::CustomLineEdit ( QWidget * parent, bool IsNull, bool IsMulti )
      11              :   : QLineEdit ( parent ),
      12            0 :     Valid ( false ),
      13            0 :     NullCheck ( IsNull ),
      14            0 :     CheckDefault ( true ),
      15            0 :     PopupMenu ( false ),
      16            0 :     IsMultiValue ( IsMulti ),
      17            0 :     ContextMenu ( nullptr ),
      18            0 :     Dec ( nullptr ),
      19            0 :     Oct ( nullptr ),
      20            0 :     Hex ( nullptr ),
      21            0 :     Validator ( nullptr )
      22              : {
      23            0 :   connect ( this, SIGNAL ( textChanged ( QString ) ), this,
      24              :             SLOT ( TryValidate ( QString ) ) );
      25            0 :   this->setFixedHeight ( 30 );
      26              :   //this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
      27            0 : }
      28              : 
      29            0 : dbe::CustomLineEdit::~CustomLineEdit()
      30              : {
      31            0 :   if ( Validator != nullptr )
      32              :   {
      33            0 :     delete Validator;
      34              :   }
      35            0 : }
      36              : 
      37            0 : void dbe::CustomLineEdit::SetNullCheck ( bool IsNull )
      38              : {
      39            0 :   NullCheck = IsNull;
      40              : 
      41            0 :   if ( NullCheck == false )
      42              :   {
      43            0 :     setPalette ( QApplication::palette ( this ) );
      44              :   }
      45            0 : }
      46              : 
      47            0 : void dbe::CustomLineEdit::SetMultiCheck ( bool IsMulti )
      48              : {
      49            0 :   IsMultiValue = IsMulti;
      50            0 : }
      51              : 
      52            0 : bool dbe::CustomLineEdit::IsNullCheck()
      53              : {
      54            0 :   return NullCheck;
      55              : }
      56              : 
      57            0 : bool dbe::CustomLineEdit::IsValid()
      58              : {
      59            0 :   return Valid;
      60              : }
      61              : 
      62            0 : void dbe::CustomLineEdit::SetCheckDefault ( bool Default )
      63              : {
      64            0 :   CheckDefault = Default;
      65            0 : }
      66              : 
      67            0 : void dbe::CustomLineEdit::SetDefaultValue ( QString ValueDefault )
      68              : {
      69            0 :   DefaultValue = ValueDefault;
      70            0 : }
      71              : 
      72            0 : void dbe::CustomLineEdit::ValidateText()
      73              : {
      74            0 :   QString Dummy ( "Dummy" );
      75            0 :   TryValidate ( Dummy );
      76            0 : }
      77              : 
      78            0 : void dbe::CustomLineEdit::SetLoadedDefaultFlag ( bool Loaded )
      79              : {
      80            0 :   setProperty ( "loadedDefaults", Loaded );
      81            0 : }
      82              : 
      83            0 : void dbe::CustomLineEdit::SetValidator ( QValidator * ValidatorSet )
      84              : {
      85            0 :   Validator = ValidatorSet;
      86            0 : }
      87              : 
      88            0 : void dbe::CustomLineEdit::SetPopupMenu()
      89              : {
      90            0 :   PopupMenu = true;
      91            0 : }
      92              : 
      93            0 : void dbe::CustomLineEdit::CreateActions()
      94              : {
      95            0 :   Dec = new QAction ( tr ( "Dec" ), this );
      96            0 :   Dec->setShortcutContext ( Qt::WidgetShortcut );
      97            0 :   connect ( Dec, SIGNAL ( triggered() ), this, SLOT ( EmitDecSlot() ) );
      98            0 :   Dec->setCheckable ( true );
      99            0 :   Dec->setChecked ( false );
     100            0 :   ContextMenu->addAction ( Dec );
     101              : 
     102            0 :   Oct = new QAction ( tr ( "Oct" ), this );
     103            0 :   Oct->setShortcutContext ( Qt::WidgetShortcut );
     104            0 :   connect ( Oct, SIGNAL ( triggered() ), this, SLOT ( EmitOctSlot() ) );
     105            0 :   Oct->setCheckable ( true );
     106            0 :   Oct->setChecked ( false );
     107            0 :   ContextMenu->addAction ( Oct );
     108              : 
     109            0 :   Hex = new QAction ( tr ( "Hex" ), this );
     110            0 :   Hex->setShortcutContext ( Qt::WidgetShortcut );
     111            0 :   Hex->setCheckable ( true );
     112            0 :   Hex->setChecked ( false );
     113            0 :   connect ( Hex, SIGNAL ( triggered() ), this, SLOT ( EmitHexSlot() ) );
     114            0 :   ContextMenu->addAction ( Hex );
     115            0 : }
     116              : 
     117            0 : void dbe::CustomLineEdit::TryValidate ( QString Dummy )
     118              : {
     119            0 :   Q_UNUSED ( Dummy )
     120              : 
     121            0 :   QString tmp_st = this->text();
     122            0 :   int i = 0;
     123              : 
     124            0 :   if ( tmp_st.isEmpty() && NullCheck )
     125              :   {
     126            0 :     Valid = false;
     127              : 
     128            0 :     if ( !IsMultiValue )
     129              :     {
     130            0 :       this->setPalette ( StyleUtility::WarningStatusBarPallete );
     131            0 :       setToolTip ( QString ( "Field cannot be empty!" ) );
     132              :     }
     133              : 
     134            0 :     emit StringValidated(); // it is caught by EditStringAttrWidget
     135              :   }
     136            0 :   else if ( Validator != 0 )
     137              :   {
     138            0 :     if ( ( Validator->validate ( tmp_st, i ) ) == QValidator::Acceptable )
     139              :     {
     140            0 :       Valid = true;
     141            0 :       this->setPalette ( QApplication::palette ( this ) );
     142            0 :       setToolTip ( QString ( "This new object ID is unique" ) );
     143              :     }
     144            0 :     else if ( ( Validator->validate ( tmp_st, i ) ) == QValidator::Intermediate )
     145              :     {
     146            0 :       Valid = false;
     147            0 :       this->setPalette ( StyleUtility::AlertStatusBarPallete );
     148            0 :       setToolTip ( QString ( "This UID is already used" ) );
     149              :     }
     150              :   }
     151            0 :   else if ( Validator == 0 )
     152              :   {
     153            0 :     Valid = true;
     154            0 :     setPalette ( QApplication::palette ( this ) );
     155              : 
     156            0 :     if ( tmp_st == DefaultValue && CheckDefault )
     157              :     {
     158            0 :       this->setPalette ( StyleUtility::LoadedDefault );
     159              :     }
     160              :     else
     161              :     {
     162            0 :       this->setPalette ( QApplication::palette ( this ) );
     163              :     }
     164              : 
     165            0 :     emit StringValidated();
     166              :   }
     167            0 : }
     168              : 
     169            0 : void dbe::CustomLineEdit::EmitDecSlot()
     170              : {
     171            0 :   Dec->setChecked ( true );
     172            0 :   Oct->setChecked ( false );
     173            0 :   Hex->setChecked ( false );
     174            0 :   emit DecChange();
     175            0 : }
     176              : 
     177            0 : void dbe::CustomLineEdit::EmitOctSlot()
     178              : {
     179            0 :   Dec->setChecked ( false );
     180            0 :   Oct->setChecked ( true );
     181            0 :   Hex->setChecked ( false );
     182            0 :   emit OctChange();
     183            0 : }
     184              : 
     185            0 : void dbe::CustomLineEdit::EmitHexSlot()
     186              : {
     187            0 :   Dec->setChecked ( false );
     188            0 :   Oct->setChecked ( false );
     189            0 :   Hex->setChecked ( true );
     190            0 :   emit HexChange();
     191            0 : }
     192              : 
     193            0 : void dbe::CustomLineEdit::contextMenuEvent ( QContextMenuEvent * Event )
     194              : {
     195            0 :   if ( !PopupMenu )
     196              :   {
     197              :     return;
     198              :   }
     199              : 
     200            0 :   if ( ContextMenu == nullptr )
     201              :   {
     202            0 :     ContextMenu = new QMenu ( this );
     203            0 :     CreateActions();
     204              :   }
     205              : 
     206            0 :   ContextMenu->exec ( Event->globalPos() );
     207              : }
        

Generated by: LCOV version 2.0-1