123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- /****************************************************************************
- **
- ** Copyright (C) 2013 Jarek Pelczar <jpelczar@gmail.com>
- **
- ** This file is part of Qt Creator.
- **
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia. For licensing terms and
- ** conditions see http://qt.digia.com/licensing. For further information
- ** use the contact form at http://qt.digia.com/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 2.1 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL included in the
- ** packaging of this file. Please review the following information to
- ** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Digia gives you certain additional
- ** rights. These rights are described in the Digia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ****************************************************************************/
- #ifndef TIZEN_TIZENMANIFESTEDITORWIDGET_H
- #define TIZEN_TIZENMANIFESTEDITORWIDGET_H
- #include <texteditor/basetexteditor.h>
- #include <texteditor/plaintexteditor.h>
- #include <texteditor/texteditoractionhandler.h>
- #include "ui_tizenmanifestxmleditorform.h"
- #include <QAbstractItemModel>
- QT_BEGIN_NAMESPACE
- class QDomDocument;
- class QDomElement;
- QT_END_NAMESPACE
- namespace Tizen {
- class TizenManifestEditorWidget : public TextEditor::PlainTextEditorWidget
- {
- Q_OBJECT
- public:
- enum EditorPage {
- GeneralPage,
- SourcePage
- };
- explicit TizenManifestEditorWidget(QWidget *parent, TextEditor::TextEditorActionHandler * ah);
- bool isModified() const;
- bool open(QString *errorString, const QString &fileName, const QString &realFileName);
- void preSave();
- EditorPage activePage() const;
- bool setActivePage(EditorPage page);
- private slots:
- void delayedParseCheck();
- void startParseCheck();
- void updateInfoBar();
- void setDirty(bool dirty = true);
- private slots:
- void addFeatureClicked();
- void removeFeatureClicked();
- void updateFeaturesButton();
- void featureValueIndexChanged(int);
- void generateAppId();
- void authorChanged(QString);
- void urlChanged(QString);
- protected:
- virtual TextEditor::BaseTextEditor *createEditor();
- virtual void resizeEvent(QResizeEvent *);
- private:
- void initializePage();
- bool checkDocument(QDomDocument doc, QString * errorMessage, int * errorLine, int * errorColumn);
- void updateInfoBar(QString errorMessage, int errorLine, int errorColumn);
- void hideInfoBar();
- bool syncToWidgets();
- void syncToWidgets(QDomDocument doc);
- void syncToEditor();
- void updateValue(QDomElement parent, const QString& element, const QString& value);
- private:
- struct TizenFeatureValue {
- QString value;
- QString description;
- bool isDefault;
- inline TizenFeatureValue() : isDefault(false) { }
- inline TizenFeatureValue(QString _value, QString _desc, bool _isDef) : value(_value), description(_desc), isDefault(_isDef) { }
- };
- QHash<QString, QList<TizenFeatureValue> > features();
- TextEditor::TextEditorActionHandler * m_actionHandler;
- QWidget * m_overlayWidget;
- EditorPage m_activePage;
- bool m_dirty;
- int m_errorLine;
- int m_errorColumn;
- QTimer * m_parseTimer;
- bool m_stayClean;
- Ui::TizenManifestXmlEditorForm m_form;
- QHash<QString, QList<TizenFeatureValue> > m_features;
- QHash<QString, QString> m_featureValues;
- // Actual widgets for XML values
- };
- } // namespace Tizen
- #endif // TIZEN_TIZENMANIFESTEDITORWIDGET_H
|