Browse Source

More UI work, reorg Windows stuff...

Adam Ierymenko 11 years ago
parent
commit
77bab13546

+ 2 - 1
ZeroTierUI/ZeroTierUI.pro

@@ -19,7 +19,8 @@ SOURCES += main.cpp\
 
 HEADERS  += mainwindow.h \
     network.h \
-    aboutwindow.h
+    aboutwindow.h \
+    ../node/Node.hpp
 
 FORMS    += mainwindow.ui \
     network.ui \

+ 30 - 0
ZeroTierUI/mainwindow.cpp

@@ -28,6 +28,7 @@ void MainWindow::on_actionAbout_triggered()
 
 void MainWindow::on_actionJoin_Network_triggered()
 {
+	// Does the same thing as clicking join button on main UI
 	on_joinNetworkButton_clicked();
 }
 
@@ -37,6 +38,35 @@ void MainWindow::on_actionShow_Detailed_Status_triggered()
 
 void MainWindow::on_networkIdLineEdit_textChanged(const QString &text)
 {
+	QString newText;
+	for(QString::const_iterator i(text.begin());i!=text.end();++i) {
+		switch(i->toLatin1()) {
+			case '0': newText.append('0'); break;
+			case '1': newText.append('1'); break;
+			case '2': newText.append('2'); break;
+			case '3': newText.append('3'); break;
+			case '4': newText.append('4'); break;
+			case '5': newText.append('5'); break;
+			case '6': newText.append('6'); break;
+			case '7': newText.append('7'); break;
+			case '8': newText.append('8'); break;
+			case '9': newText.append('9'); break;
+			case 'a': newText.append('a'); break;
+			case 'b': newText.append('b'); break;
+			case 'c': newText.append('c'); break;
+			case 'd': newText.append('d'); break;
+			case 'e': newText.append('e'); break;
+			case 'f': newText.append('f'); break;
+			case 'A': newText.append('a'); break;
+			case 'B': newText.append('b'); break;
+			case 'C': newText.append('c'); break;
+			case 'D': newText.append('d'); break;
+			case 'E': newText.append('e'); break;
+			case 'F': newText.append('f'); break;
+			default: break;
+		}
+	}
+	ui->networkIdLineEdit->setText(newText);
 }
 
 void MainWindow::on_statusAndAddressButton_clicked()

+ 4 - 1
ZeroTierUI/mainwindow.ui

@@ -64,6 +64,9 @@
         </rect>
        </property>
        <layout class="QVBoxLayout" name="verticalLayout_2">
+        <property name="spacing">
+         <number>0</number>
+        </property>
         <property name="leftMargin">
          <number>0</number>
         </property>
@@ -128,7 +131,7 @@
           <string notr="true">border: 0;</string>
          </property>
          <property name="text">
-          <string>0000000000    (OFFLINE, 0 peers)</string>
+          <string>0000000000    (OFFLINE, 0 peers)   </string>
          </property>
          <property name="toolButtonStyle">
           <enum>Qt::ToolButtonTextOnly</enum>

+ 12 - 1
ZeroTierUI/network.cpp

@@ -1,8 +1,10 @@
 #include "network.h"
 #include "ui_network.h"
 
+#include <QClipboard>
+
 Network::Network(QWidget *parent) :
-	QScrollArea(parent),
+	QWidget(parent),
 	ui(new Ui::Network)
 {
 	ui->setupUi(this);
@@ -12,3 +14,12 @@ Network::~Network()
 {
 	delete ui;
 }
+
+void Network::on_leaveNetworkButton_clicked()
+{
+}
+
+void Network::on_networkIdPushButton_clicked()
+{
+	QApplication::clipboard()->setText(ui->networkIdPushButton->text());
+}

+ 7 - 2
ZeroTierUI/network.h

@@ -1,13 +1,13 @@
 #ifndef NETWORK_H
 #define NETWORK_H
 
-#include <QScrollArea>
+#include <QWidget>
 
 namespace Ui {
 class Network;
 }
 
-class Network : public QScrollArea
+class Network : public QWidget
 {
 	Q_OBJECT
 
@@ -15,6 +15,11 @@ public:
 	explicit Network(QWidget *parent = 0);
 	~Network();
 
+private slots:
+	void on_leaveNetworkButton_clicked();
+
+	void on_networkIdPushButton_clicked();
+
 private:
 	Ui::Network *ui;
 };

+ 241 - 13
ZeroTierUI/network.ui

@@ -1,31 +1,259 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
  <class>Network</class>
- <widget class="QScrollArea" name="Network">
+ <widget class="QWidget" name="Network">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>618</width>
-    <height>79</height>
+    <height>93</height>
    </rect>
   </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
   <property name="windowTitle">
-   <string>ScrollArea</string>
+   <string>Network</string>
   </property>
-  <property name="widgetResizable">
+  <property name="widgetResizable" stdset="0">
    <bool>true</bool>
   </property>
-  <widget class="QWidget" name="scrollAreaWidgetContents">
-   <property name="geometry">
-    <rect>
-     <x>0</x>
-     <y>0</y>
-     <width>616</width>
-     <height>77</height>
-    </rect>
+  <layout class="QHBoxLayout" name="horizontalLayout_3">
+   <property name="spacing">
+    <number>6</number>
+   </property>
+   <property name="leftMargin">
+    <number>6</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>6</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
    </property>
-  </widget>
+   <item>
+    <widget class="QWidget" name="leftWidget" native="true">
+     <layout class="QFormLayout" name="formLayout">
+      <property name="fieldGrowthPolicy">
+       <enum>QFormLayout::ExpandingFieldsGrow</enum>
+      </property>
+      <property name="labelAlignment">
+       <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+      </property>
+      <property name="formAlignment">
+       <set>Qt::AlignHCenter|Qt::AlignTop</set>
+      </property>
+      <property name="horizontalSpacing">
+       <number>6</number>
+      </property>
+      <property name="verticalSpacing">
+       <number>2</number>
+      </property>
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <item row="2" column="0">
+       <widget class="QLabel" name="label_2">
+        <property name="text">
+         <string>Network ID:</string>
+        </property>
+        <property name="textFormat">
+         <enum>Qt::PlainText</enum>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="QPushButton" name="networkIdPushButton">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <family>Courier</family>
+          <pointsize>13</pointsize>
+          <weight>75</weight>
+          <bold>true</bold>
+         </font>
+        </property>
+        <property name="toolTip">
+         <string>Click to Copy to Clipboard</string>
+        </property>
+        <property name="styleSheet">
+         <string notr="true">border: 0;
+padding: 0;
+margin: 0;
+text-align: left;</string>
+        </property>
+        <property name="text">
+         <string>0000000000000000</string>
+        </property>
+        <property name="flat">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0">
+       <widget class="QLabel" name="label">
+        <property name="text">
+         <string>Status:</string>
+        </property>
+        <property name="textFormat">
+         <enum>Qt::PlainText</enum>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1">
+       <widget class="QLabel" name="statusLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="font">
+         <font>
+          <weight>75</weight>
+          <bold>true</bold>
+         </font>
+        </property>
+        <property name="text">
+         <string>OK</string>
+        </property>
+        <property name="textFormat">
+         <enum>Qt::PlainText</enum>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="0">
+       <widget class="QLabel" name="label_4">
+        <property name="text">
+         <string>Device:</string>
+        </property>
+        <property name="textFormat">
+         <enum>Qt::PlainText</enum>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="1">
+       <widget class="QLabel" name="deviceLabel">
+        <property name="font">
+         <font>
+          <weight>75</weight>
+          <bold>true</bold>
+         </font>
+        </property>
+        <property name="text">
+         <string>zt0</string>
+        </property>
+        <property name="textFormat">
+         <enum>Qt::PlainText</enum>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1">
+       <widget class="QWidget" name="leaveNetworkButtonContainerWidget" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="minimumSize">
+         <size>
+          <width>100</width>
+          <height>0</height>
+         </size>
+        </property>
+        <layout class="QHBoxLayout" name="horizontalLayout_2">
+         <property name="leftMargin">
+          <number>0</number>
+         </property>
+         <property name="topMargin">
+          <number>0</number>
+         </property>
+         <property name="rightMargin">
+          <number>0</number>
+         </property>
+         <property name="bottomMargin">
+          <number>0</number>
+         </property>
+         <item>
+          <spacer name="horizontalSpacer">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>40</width>
+             <height>20</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item>
+          <widget class="QPushButton" name="leaveNetworkButton">
+           <property name="font">
+            <font>
+             <pointsize>10</pointsize>
+             <underline>true</underline>
+            </font>
+           </property>
+           <property name="styleSheet">
+            <string notr="true">padding: 0; margin: 0;</string>
+           </property>
+           <property name="text">
+            <string>Leave Network</string>
+           </property>
+           <property name="flat">
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QListWidget" name="ipListWidget">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="font">
+      <font>
+       <family>Courier</family>
+       <pointsize>10</pointsize>
+      </font>
+     </property>
+     <property name="showDropIndicator" stdset="0">
+      <bool>false</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
  </widget>
  <resources/>
  <connections/>

+ 0 - 0
vsprojects/SelfTest/SelfTest.vcxproj → windows/SelfTest/SelfTest.vcxproj


+ 0 - 0
vsprojects/SelfTest/SelfTest.vcxproj.filters → windows/SelfTest/SelfTest.vcxproj.filters


+ 0 - 0
vsprojects/SelfTest/targetver.h → windows/SelfTest/targetver.h


+ 0 - 0
vsprojects/TapDriver Package/TapDriver Package.vcxproj → windows/TapDriver Package/TapDriver Package.vcxproj


+ 0 - 0
vsprojects/TapDriver Package/TapDriver Package.vcxproj.filters → windows/TapDriver Package/TapDriver Package.vcxproj.filters


+ 0 - 0
vsprojects/TapDriver/TapDriver.vcxproj → windows/TapDriver/TapDriver.vcxproj


+ 0 - 0
vsprojects/TapDriver/TapDriver.vcxproj.filters → windows/TapDriver/TapDriver.vcxproj.filters


+ 0 - 0
vsprojects/TapDriver/config.h → windows/TapDriver/config.h


+ 0 - 0
vsprojects/TapDriver/constants.h → windows/TapDriver/constants.h


+ 0 - 0
vsprojects/TapDriver/dhcp.c → windows/TapDriver/dhcp.c


+ 0 - 0
vsprojects/TapDriver/dhcp.h → windows/TapDriver/dhcp.h


+ 0 - 0
vsprojects/TapDriver/endian.h → windows/TapDriver/endian.h


+ 0 - 0
vsprojects/TapDriver/error.c → windows/TapDriver/error.c


+ 0 - 0
vsprojects/TapDriver/error.h → windows/TapDriver/error.h


+ 0 - 0
vsprojects/TapDriver/instance.c → windows/TapDriver/instance.c


+ 0 - 0
vsprojects/TapDriver/lock.h → windows/TapDriver/lock.h


+ 0 - 0
vsprojects/TapDriver/macinfo.c → windows/TapDriver/macinfo.c


+ 0 - 0
vsprojects/TapDriver/macinfo.h → windows/TapDriver/macinfo.h


+ 0 - 0
vsprojects/TapDriver/mem.c → windows/TapDriver/mem.c


+ 0 - 0
vsprojects/TapDriver/proto.h → windows/TapDriver/proto.h


+ 0 - 0
vsprojects/TapDriver/prototypes.h → windows/TapDriver/prototypes.h


+ 0 - 0
vsprojects/TapDriver/tap-windows.h → windows/TapDriver/tap-windows.h


+ 0 - 0
vsprojects/TapDriver/tapdrvr.c → windows/TapDriver/tapdrvr.c


+ 0 - 0
vsprojects/TapDriver/testcert.pfx → windows/TapDriver/testcert.pfx


+ 0 - 0
vsprojects/TapDriver/types.h → windows/TapDriver/types.h


+ 0 - 0
vsprojects/TapDriver/ztTap100.inf → windows/TapDriver/ztTap100.inf


+ 4 - 4
ZeroTierOne.sln → windows/ZeroTierOne.sln

@@ -1,16 +1,16 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 2012
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SelfTest", "vsprojects\SelfTest\SelfTest.vcxproj", "{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SelfTest", "SelfTest\SelfTest.vcxproj", "{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TapDriver", "vsprojects\TapDriver\TapDriver.vcxproj", "{689210B1-467C-4850-BB7D-2E10D5B4A3DA}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TapDriver", "TapDriver\TapDriver.vcxproj", "{689210B1-467C-4850-BB7D-2E10D5B4A3DA}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TapDriver Package", "vsprojects\TapDriver Package\TapDriver Package.vcxproj", "{FDA1DD8D-1D56-4BC1-B402-FCC0B550D946}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TapDriver Package", "TapDriver Package\TapDriver Package.vcxproj", "{FDA1DD8D-1D56-4BC1-B402-FCC0B550D946}"
 	ProjectSection(ProjectDependencies) = postProject
 		{689210B1-467C-4850-BB7D-2E10D5B4A3DA} = {689210B1-467C-4850-BB7D-2E10D5B4A3DA}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZeroTierOne", "vsprojects\ZeroTierOne\ZeroTierOne.vcxproj", "{B00A4957-5977-4AC1-9EF4-571DC27EADA2}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZeroTierOne", "ZeroTierOne\ZeroTierOne.vcxproj", "{B00A4957-5977-4AC1-9EF4-571DC27EADA2}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution

+ 0 - 0
vsprojects/ZeroTierOne/ZeroTierOne.vcxproj → windows/ZeroTierOne/ZeroTierOne.vcxproj


+ 0 - 0
vsprojects/ZeroTierOne/ZeroTierOne.vcxproj.filters → windows/ZeroTierOne/ZeroTierOne.vcxproj.filters