]> Shamusworld >> Repos - architektonas/commitdiff
More work on LayerWidget. Not functional yet.
authorShamus Hammons <jlhamm@acm.org>
Sat, 13 Jul 2013 16:08:57 +0000 (11:08 -0500)
committerShamus Hammons <jlhamm@acm.org>
Sat, 13 Jul 2013 16:08:57 +0000 (11:08 -0500)
architektonas.pro
res/architektonas.qrc
res/lock-closed.png [new file with mode: 0644]
res/lock-open.png [new file with mode: 0644]
src/layeritemwidget.cpp [new file with mode: 0644]
src/layeritemwidget.h [new file with mode: 0644]
src/layerwidget.cpp

index 609aaf677e8bb061691c4229d368522a9031e083..65afe20edbd673fffd69ecd6a034aec577de8007 100644 (file)
@@ -59,6 +59,7 @@ HEADERS = \
        src/fileio.h \
        src/generaltab.h \
        src/layerwidget.h \
+       src/layeritemwidget.h \
        src/line.h \
        src/main.h \
        src/mathconstants.h \
@@ -87,6 +88,7 @@ SOURCES = \
        src/fileio.cpp \
        src/generaltab.cpp \
        src/layerwidget.cpp \
+       src/layeritemwidget.cpp \
        src/line.cpp \
        src/main.cpp \
        src/object.cpp \
index e8a96eb8d77ebb978c2c8d01441ed06837cdbe78..8e79c6d54181c3003c0daeb9a27ca022556c2a23 100644 (file)
@@ -20,5 +20,7 @@
                <file>zoom-out.png</file>
                <file>eye-open.png</file>
                <file>eye-closed.png</file>
+               <file>lock-open.png</file>
+               <file>lock-closed.png</file>
        </qresource>
 </RCC>
diff --git a/res/lock-closed.png b/res/lock-closed.png
new file mode 100644 (file)
index 0000000..ec066cd
Binary files /dev/null and b/res/lock-closed.png differ
diff --git a/res/lock-open.png b/res/lock-open.png
new file mode 100644 (file)
index 0000000..7187f56
Binary files /dev/null and b/res/lock-open.png differ
diff --git a/src/layeritemwidget.cpp b/src/layeritemwidget.cpp
new file mode 100644 (file)
index 0000000..273ebf1
--- /dev/null
@@ -0,0 +1,54 @@
+// layeritemwidget.cpp: Layer item widget
+//
+// Part of the Architektonas Project
+// (C) 2011 Underground Software
+// See the README and GPLv3 files for licensing and warranty information
+//
+// JLH = James Hammons <jlhamm@acm.org>
+//
+// WHO  WHEN        WHAT
+// ---  ----------  ------------------------------------------------------------
+// JLH  07/13/2013  Created this file
+//
+
+#include "layeritemwidget.h"
+
+
+LayerItemWidget::LayerItemWidget(QString s, bool invisible/*=false*/, bool locked/*=false*/):
+       QWidget(),
+       name(new QLabel(s)),
+       visibility(new QPushButton),
+       editibility(new QPushButton)
+{
+       QIcon visibleIcon(":/res/eye-open.png");
+       visibleIcon.addFile(":/res/eye-closed.png", QSize(16, 16), QIcon::Normal, QIcon::On);
+       QIcon lockedIcon(":/res/lock-open.png");
+       lockedIcon.addFile(":/res/lock-closed.png", QSize(16, 16), QIcon::Normal, QIcon::On);
+       QSize buttonSize(20, 20);
+
+       QHBoxLayout * mainLayout = new QHBoxLayout;
+       mainLayout->setContentsMargins(0, 0, 0, 0); // This is required, otherwise the layout engine puts too much space around this widget. :-/
+
+       visibility->setFlat(true);
+       visibility->setIcon(visibleIcon);
+       visibility->setCheckable(true);
+       visibility->setMaximumSize(buttonSize);
+       visibility->setChecked(invisible);
+
+       editibility->setFlat(true);
+       editibility->setIcon(lockedIcon);
+       editibility->setCheckable(true);
+       editibility->setMaximumSize(buttonSize);
+       editibility->setChecked(locked);
+
+       mainLayout->addWidget(visibility);
+       mainLayout->addWidget(editibility);
+       mainLayout->addWidget(name);
+       setLayout(mainLayout);
+}
+
+
+LayerItemWidget::~LayerItemWidget()
+{
+}
+
diff --git a/src/layeritemwidget.h b/src/layeritemwidget.h
new file mode 100644 (file)
index 0000000..0ee1119
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef __LAYERITEMWIDGET_H__
+#define __LAYERITEMWIDGET_H__
+
+#include <QtGui>
+
+class LayerItemWidget: public QWidget
+{
+       Q_OBJECT
+
+       public:
+               LayerItemWidget(QString, bool invisible = false, bool locked = false);
+               ~LayerItemWidget();
+
+       public:
+               QLabel * name;
+               QPushButton * visibility;
+               QPushButton * editibility;
+};
+
+#endif // __LAYERITEMWIDGET_H__
index ba907917acc627fef20f1199c8c25932c75345d6..b45eed6a6da6a2f167ed0d2f3f7914331e4b3e3f 100644 (file)
@@ -12,6 +12,7 @@
 //
 
 #include "layerwidget.h"
+#include "layeritemwidget.h"
 
 
 #if 0
@@ -29,20 +30,59 @@ LayerWidget::LayerWidget(void): QWidget()
        // checkboxes to change their look (eye open/closed for visibility,
        // lock open/closed for layer lock).
 
-       QIcon visibleChecked(":/res/eye-open.png");
-//     QIcon visibleUnchecked(":/res/eye-closed.png");
-       visibleChecked.addFile(":/res/eye-closed.png", QSize(16, 16), QIcon::Normal, QIcon::On);
+       QIcon visible(":/res/eye-open.png");
+       visible.addFile(":/res/eye-closed.png", QSize(16, 16), QIcon::Normal, QIcon::On);
+       QIcon locked(":/res/lock-open.png");
+       locked.addFile(":/res/lock-closed.png", QSize(16, 16), QIcon::Normal, QIcon::On);
 
        QVBoxLayout * mainLayout = new QVBoxLayout;
-       QCheckBox * box1 = new QCheckBox("bleah");
-       box1->setIcon(visibleChecked);
-       mainLayout->addWidget(box1);
-       QPushButton * button1 = new QPushButton;//(visibleChecked);
+       QHBoxLayout * line1 = new QHBoxLayout;
+       QHBoxLayout * line2 = new QHBoxLayout;
+
+//     QCheckBox * box1 = new QCheckBox("bleah");
+//     box1->setIcon(visible);
+//     mainLayout->addWidget(box1);
+
+       QPushButton * button1 = new QPushButton;
        button1->setFlat(true);
-       button1->setIcon(visibleChecked);
+       button1->setIcon(visible);
        button1->setCheckable(true);
-       mainLayout->addWidget(button1);
-//printf("LayerWidget: About to set layout...\n");
+       button1->setMaximumSize(QSize(20, 20));
+       QPushButton * button2 = new QPushButton;
+       button2->setFlat(true);
+       button2->setIcon(locked);
+       button2->setCheckable(true);
+       button2->setMaximumSize(QSize(20, 20));
+       QLabel * label1 = new QLabel("Background");
+
+       QPushButton * button3 = new QPushButton;
+       button3->setFlat(true);
+       button3->setIcon(visible);
+       button3->setCheckable(true);
+       button3->setMaximumSize(QSize(20, 20));
+       QPushButton * button4 = new QPushButton;
+       button4->setFlat(true);
+       button4->setIcon(locked);
+       button4->setCheckable(true);
+       button4->setMaximumSize(QSize(20, 20));
+       QLabel * label2 = new QLabel("Guides");
+
+       line1->addWidget(button1);
+       line1->addWidget(button2);
+       line1->addWidget(label1);
+
+       line2->addWidget(button3);
+       line2->addWidget(button4);
+       line2->addWidget(label2);
+
+       LayerItemWidget * liw1 = new LayerItemWidget("Floor #1");
+       LayerItemWidget * liw2 = new LayerItemWidget("Mechanical");
+       
+       mainLayout->addLayout(line1);
+       mainLayout->addLayout(line2);
+       mainLayout->addWidget(liw1);
+       mainLayout->addWidget(liw2);
+       mainLayout->addStretch();
        setLayout(mainLayout);
 }