00001 /********************************************************************** 00002 AbstractEditTab - Generic tab for editing templates 00003 00004 Copyright (C) 2009-2011 by David Lonie 00005 00006 This library is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU Library General Public License as 00008 published by the Free Software Foundation; either version 2.1 of the 00009 License, or (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public icense for more details. 00015 ***********************************************************************/ 00016 00017 #ifndef ABSTRACTEDITTAB_H 00018 #define ABSTRACTEDITTAB_H 00019 00020 #include <globalsearch/ui/abstracttab.h> 00021 00022 #include <QtCore/QList> 00023 #include <QtCore/QString> 00024 #include <QtCore/QStringList> 00025 00026 class QCheckBox; 00027 class QComboBox; 00028 class QLineEdit; 00029 class QListWidget; 00030 class QPushButton; 00031 class QTextEdit; 00032 00033 namespace GlobalSearch { 00034 class AbstractDialog; 00035 class OptBase; 00036 class Optimizer; 00037 class QueueInterface; 00038 00046 class AbstractEditTab : public GlobalSearch::AbstractTab 00047 { 00048 Q_OBJECT; 00049 00050 public: 00057 explicit AbstractEditTab( AbstractDialog *parent, OptBase *p ); 00058 00062 virtual ~AbstractEditTab(); 00063 00064 public slots: 00068 virtual void lockGUI(); 00069 00073 virtual void updateGUI(); 00074 00078 virtual void updateEditWidget(); 00079 00083 virtual void showHelp(); 00084 00089 virtual void saveCurrentTemplate(); 00090 00094 virtual void populateOptStepList(); 00095 00100 virtual void populateTemplates(); 00101 00106 virtual void appendOptStep(); 00107 00111 virtual void removeCurrentOptStep(); 00112 00117 virtual void saveScheme(); 00118 00123 virtual void loadScheme(); 00124 00129 virtual QStringList getTemplateNames(); 00130 00131 signals: 00135 void optimizerChanged(Optimizer*); 00136 00140 void queueInterfaceChanged(QueueInterface*); 00141 00142 protected slots: 00146 virtual void initialize(); 00147 00151 virtual void updateUserValues(); 00152 00157 virtual void updateQueueInterface(); 00158 00163 virtual void updateOptimizer();\ 00164 00168 virtual void configureQueueInterface(); 00169 00173 virtual void configureOptimizer(); 00174 00175 protected: 00178 QList<Optimizer*> m_optimizers; 00179 00182 QList<QueueInterface*> m_queueInterfaces; 00183 00185 QCheckBox *ui_cb_preopt; 00187 QComboBox *ui_combo_queueInterfaces; 00189 QComboBox *ui_combo_optimizers; 00191 QComboBox *ui_combo_templates; 00193 QLineEdit *ui_edit_user1; 00195 QLineEdit *ui_edit_user2; 00197 QLineEdit *ui_edit_user3; 00199 QLineEdit *ui_edit_user4; 00201 QListWidget *ui_list_edit; 00203 QListWidget *ui_list_optStep; 00205 QPushButton *ui_push_add; 00207 QPushButton *ui_push_help; 00209 QPushButton *ui_push_loadScheme; 00211 QPushButton *ui_push_optimizerConfig; 00213 QPushButton *ui_push_preoptConfig; 00215 QPushButton *ui_push_queueInterfaceConfig; 00217 QPushButton *ui_push_remove; 00219 QPushButton *ui_push_saveScheme; 00221 QTextEdit *ui_edit_edit; 00222 }; 00223 } 00224 00225 #endif