summaryrefslogtreecommitdiffstats
path: root/scribus/scgtplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scribus/scgtplugin.cpp')
-rw-r--r--scribus/scgtplugin.cpp154
1 files changed, 154 insertions, 0 deletions
diff --git a/scribus/scgtplugin.cpp b/scribus/scgtplugin.cpp
new file mode 100644
index 0000000..f39c908
--- /dev/null
+++ b/scribus/scgtplugin.cpp
@@ -0,0 +1,154 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+// kk2006
+
+
+#include "scgtplugin.h"
+
+#include <QCheckBox>
+#include <QDir>
+#include <QObject>
+#include <QHBoxLayout>
+#include <QString>
+#include <QStringList>
+#include <QWidget>
+
+/***************************************************************************************/
+/***************************************************************************************/
+
+ScGTPluginManager* ScGTPluginManager::instance_ = 0; // init static variables
+
+ScGTPluginManager::ScGTPluginManager()
+{
+}
+
+ScGTPluginManager* ScGTPluginManager::instance()
+{
+ if (!ScGTPluginManager::instance_)
+ instance_ = new ScGTPluginManager();
+
+ return instance_;
+}
+
+void ScGTPluginManager::deleteInstance()
+{
+ delete instance_;
+ instance_ = 0;
+}
+
+void ScGTPluginManager::registerGTPlugin(ScGTPlugin *plugin)
+{
+ if (plugin)
+ plugins_.append(plugin);
+}
+
+void ScGTPluginManager::unRegisterGTPlugin(ScGTPlugin *plugin)
+{
+ plugins_.removeAll(plugin);
+}
+
+void ScGTPluginManager::run()
+{
+ // TODO prefs
+ ScGTFileDialog *dia = new ScGTFileDialog(".", fileFilter(), 0, "dia");
+ if (dia->exec())
+ {
+
+ }
+ delete dia;
+}
+
+QString ScGTPluginManager::fileFilter()
+{
+ QString filters = "";
+ QString allSupported = QObject::tr("All Supported Formats") + " (";
+ for (int i = 0; i < plugins_.count(); ++i)
+ {
+ if (plugins_.at(i)->fileExtensions().count() != 0)
+ {
+ filters += plugins_.at(i)->fileFormatName() + " (";
+ QStringList fileExtensions = plugins_.at(i)->fileExtensions();
+ for (int j = 0; j < fileExtensions.count(); ++j)
+ {
+ filters += "*." + fileExtensions[j] + " ";
+ allSupported += "*." + fileExtensions[j] + " ";
+ }
+ filters = filters.trimmed();
+ filters += ");;";
+ }
+ }
+ allSupported = allSupported.trimmed();
+ allSupported += ");;";
+ filters = allSupported + filters;
+ filters += QObject::tr("All Files (*)");
+
+ return filters;
+}
+
+void ScGTPluginManager::options()
+{
+
+}
+
+ScGTPluginManager::~ScGTPluginManager()
+{
+
+}
+
+/***************************************************************************************/
+/***************************************************************************************/
+
+ScGTFileDialog::ScGTFileDialog(const QString & dirName,
+ const QString & filters,
+ QWidget * parent, const char * name)
+: CustomFDialog(parent, dirName, tr("Select a file to import"), filters)
+{
+ customize();
+}
+
+bool ScGTFileDialog::showOptions() const
+{
+ return showOptionsBox_->isChecked();
+}
+
+bool ScGTFileDialog::append() const
+{
+ return appendBox_->isChecked();
+}
+
+void ScGTFileDialog::customize()
+{
+ diaExtension_ = new QWidget(this);
+ diaExtension_->setObjectName("diaExtension_");
+
+ appendBox_ = new QCheckBox( tr("Append"), diaExtension_);
+ appendBox_->setObjectName("appendBox_");
+ showOptionsBox_ = new QCheckBox( tr("Show options"), diaExtension_);
+ showOptionsBox_->setObjectName("showOptionsBox_");
+
+ QHBoxLayout *layout = new QHBoxLayout;
+ layout->setSpacing(5);
+ layout->addWidget(appendBox_);
+ layout->addWidget(showOptionsBox_);
+
+ diaExtension_->setLayout(layout);
+
+ addWidgets(diaExtension_);
+}
+
+ScGTFileDialog::~ScGTFileDialog()
+{
+ delete showOptionsBox_;
+ delete appendBox_;
+ delete diaExtension_;
+}
+
+/***************************************************************************************/
+/***************************************************************************************/
+
+
+