1 /*******************************************************************
2 
3 Part of the Fritzing project - http://fritzing.org
4 Copyright (c) 2007-2014 Fachhochschule Potsdam - http://fh-potsdam.de
5 
6 Fritzing 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, either version 3 of the License, or
9 (at your option) any later version.
10 
11 Fritzing is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with Fritzing.  If not, see <http://www.gnu.org/licenses/>.
18 
19 ********************************************************************
20 
21 $Revision: 6904 $:
22 $Author: irascibl@gmail.com $:
23 $Date: 2013-02-26 16:26:03 +0100 (Di, 26. Feb 2013) $
24 
25 ********************************************************************/
26 
27 
28 
29 #include "abstractconnectorinfowidget.h"
30 #include "connectorinforemovebutton.h"
31 #include "connectorsinfowidget.h"
32 #include "../utils/misc.h"
33 
34 #include <QVariant>
35 
36 int AbstractConnectorInfoWidget::SingleConnectorHeight = 40;
37 
AbstractConnectorInfoWidget(ConnectorsInfoWidget * topLevelContainer,QWidget * parent)38 AbstractConnectorInfoWidget::AbstractConnectorInfoWidget(ConnectorsInfoWidget *topLevelContainer, QWidget *parent)
39 	: QFrame(parent)
40 {
41 	m_topLevelContainer = topLevelContainer;
42 	m_removeButton = new ConnectorInfoRemoveButton(this);
43 
44 	connect(
45 		m_removeButton, SIGNAL(clicked(AbstractConnectorInfoWidget*)),
46 		topLevelContainer, SLOT(removeConnector(AbstractConnectorInfoWidget*))
47 	);
48 
49 	setMinimumWidth(100);
50 
51 	setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);
52 	setMinimumHeight(SingleConnectorHeight);
53 }
54 
setSelected(bool selected,bool doEmitChange)55 void AbstractConnectorInfoWidget::setSelected(bool selected, bool doEmitChange) {
56 	m_isSelected = selected;
57 	setProperty("selected",m_isSelected);
58 
59 	reapplyStyle();
60 
61 	if(selected) {
62 		setFocus();
63 		if(doEmitChange) {
64 			emit tellSistersImNewSelected(this);
65 		}
66 	}
67 }
68 
reapplyStyle()69 void AbstractConnectorInfoWidget::reapplyStyle() {
70 	QString path = ":/resources/styles/partseditor.qss";
71 	QFile styleSheet(path);
72 
73 	if (!styleSheet.open(QIODevice::ReadOnly)) {
74 		qWarning("Unable to open :/resources/styles/partseditor.qss");
75 	} else {
76 		setStyleSheet(styleSheet.readAll());
77 	}
78 }
79 
isSelected()80 bool AbstractConnectorInfoWidget::isSelected() {
81 	return m_isSelected;
82 }
83