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