]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
New item (FontItem), allowing to show information about font setting and to select...
authorasl <asl@opencascade.com>
Wed, 20 Jul 2005 09:52:19 +0000 (09:52 +0000)
committerasl <asl@opencascade.com>
Wed, 20 Jul 2005 09:52:19 +0000 (09:52 +0000)
src/Qtx/QtxListResourceEdit.cxx
src/Qtx/QtxListResourceEdit.h

index 8ff32d4b4d233900d73d724f591d2e5cb6033046..bb6bfccaf5944f2d9ef384e79a47a9e9d701b963 100644 (file)
@@ -16,6 +16,8 @@
 #include <qobjectlist.h>
 #include <qcolordialog.h>
 #include <qwidgetstack.h>
+#include <qpushbutton.h>
+#include <qfontdialog.h>
 
 #include "QtxIntSpinBox.h"
 #include "QtxDblSpinBox.h"
@@ -359,6 +361,9 @@ QtxResourceEdit::Item* QtxListResourceEdit::Group::createItem( const QString& ti
   case Space:
     item = new Spacer( resourceEdit(), this, this );
     break;
+  case Font:
+    item = new FontItem( title, resourceEdit(), this, this );
+    break;
   }
 
   return item;
@@ -803,3 +808,56 @@ void QtxListResourceEdit::ColorItem::retrieve()
 {
   myColor->setPaletteBackgroundColor( getColor() );
 }
+
+
+/*
+  Class: QtxListResourceEdit::FontItem
+  Descr: GUI implementation of resources font item.
+*/
+QtxListResourceEdit::FontItem::FontItem( const QString& title, QtxResourceEdit* edit, Item* pItem, QWidget* parent )
+: PrefItem( Font, edit, pItem, parent )
+{
+  new QLabel( title, this );
+  myFontPrs = new QLabel( "", this );
+  QPushButton* selFont = new QPushButton( "..", this );
+  connect( selFont, SIGNAL( clicked() ), this, SLOT( onSelectFont() ) );
+}
+
+QtxListResourceEdit::FontItem::~FontItem()
+{
+}
+
+void QtxListResourceEdit::FontItem::store()
+{
+  Item::setFont( myFont );
+}
+
+void QtxListResourceEdit::FontItem::retrieve()
+{
+  myFont = getFont();
+  buildFontPrs();
+}
+
+void QtxListResourceEdit::FontItem::buildFontPrs()
+{
+  QStringList fval;
+  fval.append( myFont.family() );
+  if( myFont.bold() )
+    fval.append( "Bold" );
+  if( myFont.italic() )
+    fval.append( "Italic" );
+  fval.append( QString( "%1" ).arg( myFont.pointSize() ) );
+  
+  myFontPrs->setText( fval.join( ", " ) );
+}
+
+void QtxListResourceEdit::FontItem::onSelectFont()
+{
+  bool ok;
+  QFont newFont = QFontDialog::getFont( &ok, myFont, this );
+  if( ok )
+  {
+    myFont = newFont;
+    buildFontPrs();
+  }
+}
index 96a7ddd5bf5de626499d3ecc74fbd12f1f72f9e2..13afe81875400effca4b198dddd69eeaa0aa4a75 100644 (file)
@@ -46,8 +46,9 @@ public:
   class DoubleEditItem;
   class IntegerSpinItem;
   class IntegerEditItem;
+  class FontItem;
 
-  enum { Space, Bool, Color, String, Selector, DblSpin, IntSpin, Double, Integer };
+  enum { Space, Bool, Color, String, Selector, DblSpin, IntSpin, Double, Integer, Font, User };
 
 public:
   QtxListResourceEdit( QtxResourceMgr*, QWidget* = 0 );
@@ -350,4 +351,31 @@ private:
   QWidget*         myColor;
 };
 
+/*
+  Class: QtxListResourceEdit::FontItem
+  Descr: GUI implementation of resources font item.
+*/
+
+class QtxListResourceEdit::FontItem : public PrefItem
+{
+  Q_OBJECT
+  
+public:
+  FontItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
+  virtual ~FontItem();
+
+  virtual void     store();
+  virtual void     retrieve();
+
+protected slots:
+  void onSelectFont();
+  
+protected:
+  void buildFontPrs();
+
+private:
+  QFont           myFont;
+  QLabel*         myFontPrs;
+};
+
 #endif