1 /*
2 # PostgreSQL Database Modeler (pgModeler)
3 #
4 # Copyright 2006-2020 - Raphael Araújo e Silva <raphael@pgmodeler.io>
5 #
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation version 3.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # The complete text of GPLv3 is at LICENSE file on source code root directory.
16 # Also, you can get the complete GNU General Public License at <http://www.gnu.org/licenses/>
17 */
18 
19 #include "pgmodelerplugin.h"
20 
PgModelerPlugin()21 PgModelerPlugin::PgModelerPlugin()
22 {
23 	QGridLayout *gridLayout=nullptr;
24 	QSpacerItem *verticalSpacer=nullptr;
25 	QFont font;
26 	QWidget *widget=nullptr;
27 
28 	main_window = nullptr;
29 	plugin_info_frm=new BaseForm;
30 	gridLayout=new QGridLayout;
31 
32 	widget=new QWidget;
33 	widget->setWindowTitle(QT_TRANSLATE_NOOP("PgModelerPlugin", "Plugin Information"));
34 
35 	gridLayout->setHorizontalSpacing(10);
36 	gridLayout->setVerticalSpacing(6);
37 	gridLayout->setContentsMargins(6, 6, 6, 6);
38 
39 	icon_lbl = new QLabel(widget);
40 	icon_lbl->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
41 	icon_lbl->setMinimumSize(QSize(32, 32));
42 	icon_lbl->setMaximumSize(QSize(32, 32));
43 	gridLayout->addWidget(icon_lbl, 0, 0, 2, 1);
44 
45 	title_lbl = new QLabel(widget);
46 	title_lbl->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
47 	font.setPointSize(12);
48 	font.setBold(true);
49 	font.setItalic(true);
50 	font.setWeight(75);
51 	title_lbl->setFont(font);
52 	gridLayout->addWidget(title_lbl, 0, 1, 1, 1);
53 
54 	author_lbl = new QLabel(widget);
55 	author_lbl->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
56 	gridLayout->addWidget(author_lbl, 1, 1, 2, 1);
57 
58 	verticalSpacer = new QSpacerItem(20, 18, QSizePolicy::Minimum, QSizePolicy::Expanding);
59 	gridLayout->addItem(verticalSpacer, 2, 0, 2, 1);
60 
61 	version_lbl = new QLabel(widget);
62 	version_lbl->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
63 	gridLayout->addWidget(version_lbl, 3, 1, 1, 1);
64 
65 	description_lbl = new QLabel(widget);
66 	description_lbl->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
67 	description_lbl->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
68 	description_lbl->setWordWrap(true);
69 	gridLayout->addWidget(description_lbl, 4, 0, 1, 2);
70 
71 	widget->setLayout(gridLayout);
72 	widget->setMinimumSize(400, 200);
73 	plugin_info_frm->setMainWidget(widget);
74 }
75 
~PgModelerPlugin()76 PgModelerPlugin::~PgModelerPlugin()
77 {
78 	delete plugin_info_frm;
79 }
80 
initPlugin(MainWindow * main_window)81 void PgModelerPlugin::initPlugin(MainWindow *main_window)
82 {
83 	this->main_window = main_window;
84 }
85 
getPluginShortcut()86 QKeySequence PgModelerPlugin::getPluginShortcut()
87 {
88 	return QKeySequence();
89 }
90 
hasMenuAction()91 bool PgModelerPlugin::hasMenuAction()
92 {
93 	return true;
94 }
95 
configurePluginInfo(const QString & title,const QString & version,const QString & author,const QString & description,const QString & ico_filename)96 void PgModelerPlugin::configurePluginInfo(const QString &title, const QString &version, const QString &author,
97 										  const QString &description, const QString &ico_filename)
98 {
99 	QPixmap ico;
100 
101 	title_lbl->setText(title);
102 	version_lbl->setText(QString(QT_TRANSLATE_NOOP("PgModelerPlugin", "Version: %1")).arg(version));
103 	author_lbl->setText(QString(QT_TRANSLATE_NOOP("PgModelerPlugin","Author: %1")).arg(author));
104 	description_lbl->setText(description);
105 
106 	ico.load(ico_filename);
107 	icon_lbl->setPixmap(ico);
108 }
109