#ifndef CSV_WORLD_RECORDBUTTONBAR_H #define CSV_WORLD_RECORDBUTTONBAR_H #include #include "../../model/world/universalid.hpp" class QToolButton; class QModelIndex; namespace CSMWorld { class IdTable; class CommandDispatcher; } namespace CSMPrefs { class Setting; } namespace CSVWorld { class TableBottomBox; /// \brief Button bar for use in dialogue-type subviews /// /// Contains the following buttons: /// - next/prev /// - clone /// - add /// - delete /// - revert /// - preview (optional) /// - view (optional) class RecordButtonBar : public QWidget { Q_OBJECT CSMWorld::UniversalId mId; CSMWorld::IdTable& mTable; TableBottomBox* mBottom; CSMWorld::CommandDispatcher* mCommandDispatcher; QToolButton* mPrevButton; QToolButton* mNextButton; QToolButton* mCloneButton; QToolButton* mAddButton; QToolButton* mDeleteButton; QToolButton* mRevertButton; bool mLocked; private: void updateModificationButtons(); void updatePrevNextButtons(); public: RecordButtonBar(const CSMWorld::UniversalId& id, CSMWorld::IdTable& table, TableBottomBox* bottomBox = nullptr, CSMWorld::CommandDispatcher* commandDispatcher = nullptr, QWidget* parent = nullptr); void setEditLock(bool locked); public slots: void universalIdChanged(const CSMWorld::UniversalId& id); private slots: void settingChanged(const CSMPrefs::Setting* setting); void cloneRequest(); void nextId(); void prevId(); void rowNumberChanged(const QModelIndex& parent, int start, int end); signals: void showPreview(); void viewRecord(); void switchToRow(int row); }; } #endif