Salome HOME
Fix for bug 10438: Crash during Explode on Blocks operation (Global selection on...
[modules/gui.git] / src / Qtx / QtxListResourceEdit.h
index 141d0aba096a65f18e0f53ef222edde9bc68ca3d..7a6d2b4a59695ab504ca38622a15a27b4c27072a 100644 (file)
@@ -10,6 +10,7 @@
 #include <qhbox.h>
 #include <qframe.h>
 #include <qgroupbox.h>
+#include <qvalidator.h>
 
 class QLabel;
 class QListBox;
@@ -49,9 +50,10 @@ public:
   class IntegerSpinItem;
   class IntegerEditItem;
   class FontItem;
+  class FileItem;
   class DirListItem;
 
-  enum { Space, Bool, Color, String, Selector, DblSpin, IntSpin, Double, Integer, GroupBox, Font, DirList, User };
+  enum { Space, Bool, Color, String, Selector, DblSpin, IntSpin, Double, Integer, GroupBox, Font, DirList, File, User };
 
 public:
   QtxListResourceEdit( QtxResourceMgr*, QWidget* = 0 );
@@ -365,26 +367,58 @@ private:
   Descr: GUI implementation of resources font item.
 */
 
+class QtxComboBox;
+class QToolButton;
+
 class QtxListResourceEdit::FontItem : public PrefItem
 {
   Q_OBJECT
+
+public:
+  typedef enum
+  {
+    Family    = 0x01,
+    Size      = 0x02,
+    UserSize  = 0x04,
+    Bold      = 0x08,
+    Italic    = 0x10,
+    Underline = 0x20,
+    Preview   = 0x40,
+
+    All = Family | Size | UserSize | Bold | Italic | Underline | Preview
+    
+  } WidgetFlags;
   
 public:
   FontItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
   virtual ~FontItem();
 
-  virtual void     store();
-  virtual void     retrieve();
+  virtual void store();
+  virtual void retrieve();
 
-protected slots:
-  void onSelectFont();
-  
-protected:
-  void buildFontPrs();
+  virtual QVariant property( const QString& ) const;
+  virtual void     setProperty( const QString&, const QVariant& );
 
+private slots:
+  void onActivateFamily( int );
+  void onPreview();
+  
+private:
+  void       setFamily( const QString& );
+  QString    family() const;
+  void       setSize( const int );
+  int        size() const;
+  void       setParams( const bool, const bool, const bool );
+  void       params( bool&, bool&, bool& );
+  void       internalUpdate();
+  
 private:
-  QFont           myFont;
-  QLabel*         myFontPrs;
+  int            myFlags;
+  bool           myIsSystem;
+  QtxComboBox   *myFamilies, *mySizes;
+  QCheckBox     *myBold, *myItalic, *myUnderline;
+  QToolButton   *myPreview;
+  QMap<QString, QVariant>   myProperties;
 };
 
 
@@ -422,4 +456,56 @@ private:
   QtxDirListEditor* myDirListEditor; //!< The widget wich implements in GUI the list of directories
 };
 
+/*
+  Class: QtxListResourceEdit::FontItem
+  Descr: GUI implementation of resources font item.
+*/
+
+class QtxComboBox;
+class QToolButton;
+class QFileDialog;
+
+class QtxListResourceEdit::FileItem : public PrefItem
+{
+  Q_OBJECT
+
+private:
+  class FileValidator : public QValidator
+  {
+  public:
+    FileValidator( FileItem*, QObject* );
+    ~FileValidator();
+
+    virtual QValidator::State validate( QString&, int& ) const;
+
+  private:
+    FileItem* myItem;
+  };
+
+public:
+  FileItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
+  virtual ~FileItem();
+
+  virtual void store();
+  virtual void retrieve();
+  
+  virtual QVariant property( const QString& ) const;
+  virtual void     setProperty( const QString&, const QVariant& );
+
+  virtual bool isFileCorrect( const QString& ) const;
+
+private slots:
+  void onOpenFile();
+  void onFileSelected( const QString& );
+
+private:
+  uint          myFlags;
+  QStringList   myFilter;
+  bool          myIsExisting;
+  QLineEdit*    myFile;
+  QToolButton*  myOpenFile;
+  QFileDialog*  myFileDlg;
+};
+
+
 #endif