VocabularyManagerFrame.h

Go to the documentation of this file.
00001 #ifndef VOCAB_MANAGER_H
00002 #define VOCAB_MANAGER_H
00003 
00004 #include <iostream.h>
00005 #include <qclipboard.h>
00006 #include <qpe/qcopenvelope_qws.h>
00007 #include <qpe/qpeapplication.h>
00008 #include <qdialog.h>
00009 #include <qhbox.h>
00010 #include <qheader.h>
00011 #include <qinputdialog.h>
00012 #include <qlabel.h>
00013 #include <qlayout.h>
00014 #include <qlineedit.h>
00015 #include <qlistview.h>
00016 #include <qmessagebox.h>
00017 #include <qmime.h>
00018 #include <qmultilineedit.h>
00019 #include <qpe/fileselector.h>
00020 #include <qpushbutton.h>
00021 #include <qtabwidget.h>
00022 #include <qtextstream.h>
00023 #include <qtooltip.h>
00024 #include <qurloperator.h>
00025 #include <qvaluelist.h>
00026 #include <qvbox.h>
00027 #include <qwidget.h>
00028 #include <qwidgetstack.h>
00029 #include <qpe/resource.h>
00030 #include "BilingualKey.h"
00031 #include "Controller.h"
00032 #include "DigraphLineEdit.h"
00033 #include "DigraphMultiLineEdit.h"
00034 #include "PropertiesPanel.h"
00035 #include "SearchDialog.h"
00036 #include "SmartListView.h"
00037 #include "TranslationSelectionDialog.h"
00038 #include "TermDialog.h"
00039 #include "TermListItem.h"
00040 #include "Util.h"
00041 #include "VocabTreeView.h"
00042 #include "VocabTreeItem.h"
00043 #include "ZFileDialog.h"
00044 
00045 extern QAction* action[ ACTION_COUNT ];
00046 
00047 class VocabularyManagerFrame : public QWidget {
00048 
00049     static const int panelFolderIndex   = 0;
00050     static const int panelVocabIndex    = 1;
00051 
00052     Q_OBJECT
00053 
00054 public:
00055 
00056     VocabularyManagerFrame( Controller* controller, QWidget* parent = 0, const char* name = 0 );
00057     ~VocabularyManagerFrame();
00058 
00059     void updateShownItems();
00060 
00061     void loadData();
00062     bool saveData();
00063 
00064     bool isExportAllowed() const;
00065     bool isImportAllowed() const;
00066 
00067     bool isDigraphEnabled() const;
00068 
00069 public slots:
00070 
00071     void copy();
00072     void cut();
00073     void paste();
00074 
00075     void search();
00076 
00077     void importData();
00078     void exportData();
00079     void exportVocabulary( Vocabulary* vocab );
00080     void exportFolder( Folder* folder );
00081 
00082     void updateUi();
00083     void updateFonts();
00084     void setDigraphEnabled( bool isEnabled );
00085     void retranslateUi();
00086 
00087     bool areDetailsMaximized() const;
00088     void toggleMaximizeDetails( bool isOn );
00089     void updateGeometry();
00090 
00091 signals:
00092 
00093     void selectionChanged( QListViewItem* item );
00094 
00095 protected:
00096 
00097     virtual void resizeEvent( QResizeEvent* event );
00098     void showEvent( QShowEvent* showEvt );
00099 
00100 private slots:
00101 
00102     void updateTree();
00103     void updateCurrentFolder( FolderTreeItem* folderItem );
00104     void updateCurrentVocab( VocabTreeItem* vocabItem );
00105     void updateTermList();
00106 
00107     void keepSelection();
00108     void restoreTreeSelection();
00109     void restoreVocabSelection();
00110 
00111     FolderTreeItem* addFolder();
00112     VocabTreeItem* addVocab();
00113     void removeItem();
00114     void checkAllTerms();
00115     void inverseCheckedTerms();
00116     void addTerm();
00117     void editTerm();
00118     void removeTerms();
00119     void showTerm( const TermKey& termKey );
00120 
00121     void updateCurrentFolderTitle( const QString& title );
00122 
00123     void updateCurrentVocabTitle( const QString& title );
00124 
00125 private:
00126 
00127     FolderTreeItem* addFolder( Folder* folder, QMap<int,Vocabulary>* vocabularies = NULL );
00128     VocabTreeItem* addVocab( Vocabulary* vocab );
00129 
00130     FolderTreeItem* buildTreeRec( VocabTreeView* vocabTreeView, FolderTreeItem* parentItem, Folder* folder, bool closeFolder = false );
00131     VocabTreeItem* buildTreeRec( FolderTreeItem* parentItem, Vocabulary* vocab );
00132     void doRemoveTerms( bool allowSelectTrans = true, bool confirmBeforeRemove = true );
00133     void doRemoveItem( bool confirmBeforeRemove = true );
00134 
00135     void copyTerms() const;
00136     void pasteTerms();
00137     void pasteVocabulary();
00138     void pasteFolder();
00139 
00140     void addListeners();
00141     void removeListeners();
00142 
00143     void maximizeDetailsPanel();
00144     void restoreDetailsPanel();
00145 
00146     uint getSelectedTermCount() const;
00147 
00148     int                     currentFolderId;
00149     int                     currentVocabId;
00150     int                     currentTermId;
00151     QValueList<int>         selectedTermIdList;
00152 
00153     QVBox*                  treePanel;
00154     QHBox*                  treeButtonPanel;
00155     QPushButton*            addFolderButton;
00156     QPushButton*            addVocabButton;
00157     QPushButton*            removeItemButton;
00158     VocabTreeView*          vocabTreeView;
00159     FolderTreeItem*         vocabTreeRoot;
00160 
00161     QWidgetStack*           detailsPanel;
00162     QVBox*                  folderDetailsPanel;
00163     QLabel*                 folderDetailsTitle;
00164     QHBox*                  folderDetailsFolderHeaderPanel;
00165     QHBox*                  folderDetailsFolderTitlePanel;
00166     QLabel*                 folderDetailsFolderTitleLabel;
00167     DigraphLineEdit*        folderDetailsFolderTitleLineEdit;
00168     QPushButton*            folderDetailsFolderMaximizeDetailsButton;
00169     PropertiesPanel*        folderDetailsPropsPanel; 
00170 
00171     QVBox*                  vocabDetailsPanel;
00172     QHBox*                  vocabDetailsVocabHeaderPanel;
00173     QLabel*                 vocabDetailsTitle;
00174     QLabel*                 vocabDetailsVocabTitleLabel;
00175     DigraphLineEdit*        vocabDetailsVocabTitleLineEdit;
00176     QPushButton*            vocabDetailsVocabMaximizeDetailsButton;
00177     QTabWidget*             vocabDetailsTabWidget;
00178     QVBox*                  vocabDetailsTermsPanel;
00179     PropertiesPanel*        vocabDetailsPropsPanel;
00180     QHBox*                  vocabDetailsVocabTitlePanel;
00181     SmartListView*          termList;
00182    
00183     QWidget*                termControlPanel;
00184     QHBoxLayout*            termControlPanelLayout;
00185 
00186     QHBox*                  checkControlPanel;
00187     QPushButton*            checkAllTermsButton;
00188     QPushButton*            inverseCheckedTermsButton;
00189 
00190     QHBox*                  addRemoveTermPanel;
00191     QPushButton*            addTermButton;
00192     QPushButton*            editTermButton;
00193     QPushButton*            removeTermButton;
00194 
00195     SearchDialog*           searchDialog;
00196 
00197     Controller*             controller;
00198 
00199 };
00200 
00201 #endif

Generated on Sun Mar 1 17:30:47 2009 for toMOTko by  doxygen 1.5.6