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