mirror of
https://github.com/KLayout/klayout.git
synced 2026-09-02 19:28:37 +02:00
Merge branch 'dvb'
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
<ui version="4.0" >
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MarkerBrowserDialog</class>
|
||||
<widget class="QDialog" name="MarkerBrowserDialog" >
|
||||
<property name="geometry" >
|
||||
<widget class="QDialog" name="MarkerBrowserDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
@@ -9,40 +10,75 @@
|
||||
<height>553</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<property name="windowTitle">
|
||||
<string>Marker Database Browser</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<layout class="QVBoxLayout">
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QFrame" name="frame_3" >
|
||||
<property name="frameShape" >
|
||||
<widget class="QFrame" name="frame_3">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow" >
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<layout class="QGridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="2" >
|
||||
<item row="0" column="3">
|
||||
<widget class="QToolButton" name="file_menu">
|
||||
<property name="text">
|
||||
<string>File ... </string>
|
||||
</property>
|
||||
<property name="popupMode">
|
||||
<enum>QToolButton::InstantPopup</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string> ... on layout </string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
@@ -50,152 +86,133 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<widget class="QComboBox" name="rdb_cb" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>7</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="rdb_cb">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>1</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy" >
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContentsOnFirstShow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="label_3" >
|
||||
<property name="text" >
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Database </string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QLabel" name="label" >
|
||||
<property name="text" >
|
||||
<string> ... on layout </string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QComboBox" name="layout_cb" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>7</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="layout_cb">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>1</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy" >
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContentsOnFirstShow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3" >
|
||||
<widget class="QToolButton" name="file_menu" >
|
||||
<property name="text" >
|
||||
<string>File ... </string>
|
||||
</property>
|
||||
<property name="popupMode" >
|
||||
<enum>QToolButton::InstantPopup</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="4" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="frame_4" >
|
||||
<property name="frameShape" >
|
||||
<widget class="QFrame" name="frame_4">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow" >
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<layout class="QHBoxLayout">
|
||||
<property name="spacing">
|
||||
<number>6</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>
|
||||
<widget class="QStackedWidget" name="central_stack" >
|
||||
<property name="currentIndex" >
|
||||
<widget class="QStackedWidget" name="central_stack">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page" >
|
||||
<layout class="QVBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<widget class="QWidget" name="page">
|
||||
<layout class="QVBoxLayout">
|
||||
<property name="spacing">
|
||||
<number>6</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>
|
||||
<widget class="rdb::MarkerBrowserPage" name="browser_frame" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>13</hsizetype>
|
||||
<vsizetype>13</vsizetype>
|
||||
<widget class="rdb::MarkerBrowserPage" name="browser_frame">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Ignored" vsizetype="Ignored">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="frameShape" >
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow" >
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page_2" >
|
||||
<layout class="QVBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<widget class="QWidget" name="page_2">
|
||||
<layout class="QVBoxLayout">
|
||||
<property name="spacing">
|
||||
<number>6</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>
|
||||
<widget class="QLabel" name="label_2" >
|
||||
<property name="text" >
|
||||
<string>Choose "Open" from the "File ..." menu
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Choose "Open" from the "File ..." menu
|
||||
to load a marker database</string>
|
||||
</property>
|
||||
<property name="alignment" >
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="wordWrap" >
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
@@ -208,40 +225,49 @@ to load a marker database</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_2" >
|
||||
<property name="orientation" >
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="frame_2" >
|
||||
<property name="frameShape" >
|
||||
<widget class="QFrame" name="frame_2">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow" >
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<layout class="QHBoxLayout">
|
||||
<property name="spacing">
|
||||
<number>6</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>
|
||||
<widget class="QPushButton" name="configure_pb" >
|
||||
<property name="text" >
|
||||
<widget class="QPushButton" name="configure_pb">
|
||||
<property name="text">
|
||||
<string>Configure</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
@@ -250,8 +276,8 @@ to load a marker database</string>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton_2" >
|
||||
<property name="text" >
|
||||
<widget class="QPushButton" name="pushButton_2">
|
||||
<property name="text">
|
||||
<string>Close</string>
|
||||
</property>
|
||||
</widget>
|
||||
@@ -266,6 +292,7 @@ to load a marker database</string>
|
||||
<class>rdb::MarkerBrowserPage</class>
|
||||
<extends>QFrame</extends>
|
||||
<header>rdbMarkerBrowserPage.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
@@ -282,11 +309,11 @@ to load a marker database</string>
|
||||
<receiver>MarkerBrowserDialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel" >
|
||||
<hint type="sourcelabel">
|
||||
<x>837</x>
|
||||
<y>441</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel" >
|
||||
<hint type="destinationlabel">
|
||||
<x>881</x>
|
||||
<y>387</y>
|
||||
</hint>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
@@ -29,6 +29,73 @@
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QFrame" name="frame_5">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<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="0" column="0" rowspan="3">
|
||||
<widget class="QToolButton" name="rerun_button">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/run.png</normaloff>:/run.png</iconset>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>F5</string>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>11</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSplitter" name="splitter_2">
|
||||
<property name="orientation">
|
||||
@@ -63,69 +130,6 @@
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="2" column="1">
|
||||
<widget class="QToolButton" name="dir_down_pb">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/down.png</normaloff>:/down.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QToolButton" name="dir_up_pb">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/up.png</normaloff>:/up.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="4">
|
||||
<widget class="QTreeView" name="directory_tree">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="baseSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>4</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="contextMenuPolicy">
|
||||
<enum>Qt::ActionsContextMenu</enum>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="uniformRowHeights">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="allColumnsShowFocus">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="4">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Directory</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2" colspan="2">
|
||||
<widget class="QFrame" name="frame_2">
|
||||
<property name="sizePolicy">
|
||||
@@ -237,6 +241,69 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QToolButton" name="dir_down_pb">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/down.png</normaloff>:/down.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QToolButton" name="dir_up_pb">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/up.png</normaloff>:/up.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="4">
|
||||
<widget class="QTreeView" name="directory_tree">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="baseSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>4</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="contextMenuPolicy">
|
||||
<enum>Qt::ActionsContextMenu</enum>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="uniformRowHeights">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="allColumnsShowFocus">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="4">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Directory</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QSplitter" name="splitter">
|
||||
|
||||
@@ -132,6 +132,23 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="rerun_button">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/run.png</normaloff>:/run.png</iconset>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>F5</string>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
|
||||
@@ -218,11 +218,17 @@ static db::LayoutVsSchematic *get_lvsdb (lay::LayoutView *view, unsigned int ind
|
||||
return dynamic_cast<db::LayoutVsSchematic *> (db);
|
||||
}
|
||||
|
||||
static void add_lvsdb (lay::LayoutView *view, db::LayoutVsSchematic *lvsdb)
|
||||
static unsigned int add_lvsdb (lay::LayoutView *view, db::LayoutVsSchematic *lvsdb)
|
||||
{
|
||||
view->add_l2ndb (lvsdb);
|
||||
return view->add_l2ndb (lvsdb);
|
||||
}
|
||||
|
||||
static unsigned int replace_lvsdb (lay::LayoutView *view, unsigned int db_index, db::LayoutVsSchematic *lvsdb)
|
||||
{
|
||||
return view->replace_l2ndb (db_index, lvsdb);
|
||||
}
|
||||
|
||||
|
||||
// this binding returns a const pointer which is not converted into a copy by RBA
|
||||
static lay::LayerPropertiesNodeRef insert_layer1 (lay::LayoutView *view, const lay::LayerPropertiesConstIterator &iter, const lay::LayerProperties &props)
|
||||
{
|
||||
@@ -1442,7 +1448,7 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
|
||||
"@return The \\ReportDatabase object or nil if the index is not valid"
|
||||
) +
|
||||
gsi::method ("add_rdb", &lay::LayoutView::add_rdb, gsi::arg ("db"),
|
||||
"@brief Adds the given database to the view\n"
|
||||
"@brief Adds the given report database to the view\n"
|
||||
"\n"
|
||||
"This method will add an existing database to the view. It will then appear in the marker database browser.\n"
|
||||
"A similar method is \\create_rdb which will create a new database within the view.\n"
|
||||
@@ -1451,6 +1457,15 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
|
||||
"\n"
|
||||
"This method has been added in version 0.26."
|
||||
) +
|
||||
gsi::method ("replace_rdb", &lay::LayoutView::replace_rdb, gsi::arg ("db_index"), gsi::arg ("db"),
|
||||
"@brief Replaces the report database with the given index\n"
|
||||
"\n"
|
||||
"If the index is not valid, the database will be added to the view (see \\add_rdb).\n"
|
||||
"\n"
|
||||
"@return The index of the database within the view (see \\rdb)\n"
|
||||
"\n"
|
||||
"This method has been added in version 0.26."
|
||||
) +
|
||||
gsi::method_ext ("create_rdb", &create_rdb, gsi::arg ("name"),
|
||||
"@brief Creates a new report database and returns the index of the new database\n"
|
||||
"@param name The name of the new report database\n"
|
||||
@@ -1490,7 +1505,7 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
|
||||
"This method has been added in version 0.26."
|
||||
) +
|
||||
gsi::method ("add_l2ndb", &lay::LayoutView::add_l2ndb, gsi::arg ("db"),
|
||||
"@brief Adds the given database to the view\n"
|
||||
"@brief Adds the given netlist database to the view\n"
|
||||
"\n"
|
||||
"This method will add an existing database to the view. It will then appear in the netlist database browser.\n"
|
||||
"A similar method is \\create_l2ndb which will create a new database within the view.\n"
|
||||
@@ -1499,6 +1514,15 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
|
||||
"\n"
|
||||
"This method has been added in version 0.26."
|
||||
) +
|
||||
gsi::method ("replace_l2ndb", &lay::LayoutView::replace_l2ndb, gsi::arg ("db_index"), gsi::arg ("db"),
|
||||
"@brief Replaces the netlist database with the given index\n"
|
||||
"\n"
|
||||
"If the index is not valid, the database will be added to the view (see \\add_lvsdb).\n"
|
||||
"\n"
|
||||
"@return The index of the database within the view (see \\lvsdb)\n"
|
||||
"\n"
|
||||
"This method has been added in version 0.26."
|
||||
) +
|
||||
gsi::method_ext ("create_l2ndb", &create_l2ndb, gsi::arg ("name"),
|
||||
"@brief Creates a new netlist database and returns the index of the new database\n"
|
||||
"@param name The name of the new netlist database\n"
|
||||
@@ -1532,6 +1556,15 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
|
||||
"\n"
|
||||
"This method has been added in version 0.26."
|
||||
) +
|
||||
gsi::method_ext ("replace_lvsdb", &replace_lvsdb, gsi::arg ("db_index"), gsi::arg ("db"),
|
||||
"@brief Replaces the database with the given index\n"
|
||||
"\n"
|
||||
"If the index is not valid, the database will be added to the view (see \\add_lvsdb).\n"
|
||||
"\n"
|
||||
"@return The index of the database within the view (see \\lvsdb)\n"
|
||||
"\n"
|
||||
"This method has been added in version 0.26."
|
||||
) +
|
||||
gsi::method_ext ("create_lvsdb", &create_lvsdb, gsi::arg ("name"),
|
||||
"@brief Creates a new netlist database and returns the index of the new database\n"
|
||||
"@param name The name of the new netlist database\n"
|
||||
|
||||
@@ -7213,6 +7213,32 @@ LayoutView::add_l2ndb (db::LayoutToNetlist *l2ndb)
|
||||
return (unsigned int)(m_l2ndbs.size () - 1);
|
||||
}
|
||||
|
||||
unsigned int
|
||||
LayoutView::replace_l2ndb (unsigned int db_index, db::LayoutToNetlist *l2ndb)
|
||||
{
|
||||
tl_assert (l2ndb != 0);
|
||||
|
||||
if (db_index < m_l2ndbs.size ()) {
|
||||
|
||||
// keep the name as it is used for reference in the browser for example
|
||||
std::string n = m_l2ndbs [db_index]->name ();
|
||||
l2ndb->set_name (n);
|
||||
|
||||
delete m_l2ndbs [db_index];
|
||||
m_l2ndbs [db_index] = l2ndb;
|
||||
|
||||
// Mark this object as owned by us (for GSI)
|
||||
l2ndb->keep ();
|
||||
|
||||
l2ndb_list_changed_event ();
|
||||
|
||||
return db_index;
|
||||
|
||||
} else {
|
||||
return add_l2ndb (l2ndb);
|
||||
}
|
||||
}
|
||||
|
||||
db::LayoutToNetlist *
|
||||
LayoutView::get_l2ndb (int index)
|
||||
{
|
||||
@@ -7255,7 +7281,7 @@ LayoutView::remove_l2ndb (unsigned int index)
|
||||
unsigned int
|
||||
LayoutView::add_rdb (rdb::Database *rdb)
|
||||
{
|
||||
make_unique_name (rdb, m_l2ndbs.begin (), m_l2ndbs.end ());
|
||||
make_unique_name (rdb, m_rdbs.begin (), m_rdbs.end ());
|
||||
m_rdbs.push_back (rdb);
|
||||
|
||||
// Mark this object as owned by us (for GSI)
|
||||
@@ -7266,6 +7292,32 @@ LayoutView::add_rdb (rdb::Database *rdb)
|
||||
return (unsigned int)(m_rdbs.size () - 1);
|
||||
}
|
||||
|
||||
unsigned int
|
||||
LayoutView::replace_rdb (unsigned int db_index, rdb::Database *rdb)
|
||||
{
|
||||
tl_assert (rdb != 0);
|
||||
|
||||
if (db_index < m_rdbs.size ()) {
|
||||
|
||||
// keep name because it's used for reference in the browser for example
|
||||
std::string n = m_rdbs [db_index]->name ();
|
||||
rdb->set_name (n);
|
||||
|
||||
delete m_rdbs [db_index];
|
||||
m_rdbs [db_index] = rdb;
|
||||
|
||||
// Mark this object as owned by us (for GSI)
|
||||
rdb->keep ();
|
||||
|
||||
rdb_list_changed_event ();
|
||||
|
||||
return db_index;
|
||||
|
||||
} else {
|
||||
return add_rdb (rdb);
|
||||
}
|
||||
}
|
||||
|
||||
rdb::Database *
|
||||
LayoutView::get_rdb (int index)
|
||||
{
|
||||
|
||||
@@ -2285,6 +2285,17 @@ public:
|
||||
*/
|
||||
unsigned int add_rdb (rdb::Database *rdb);
|
||||
|
||||
/**
|
||||
* @brief Replaces a marker database
|
||||
*
|
||||
* The layout view will become owner of the database.
|
||||
* If the index is not valid, the database will be added and the new index will be returned.
|
||||
*
|
||||
* @param db_index The index of the database to replace
|
||||
* @param rdb The database to add
|
||||
*/
|
||||
unsigned int replace_rdb (unsigned int db_index, rdb::Database *rdb);
|
||||
|
||||
/**
|
||||
* @brief Get the marker database by index
|
||||
*
|
||||
@@ -2340,6 +2351,17 @@ public:
|
||||
*/
|
||||
unsigned int add_l2ndb (db::LayoutToNetlist *l2ndb);
|
||||
|
||||
/**
|
||||
* @brief Replaces a Netlist database
|
||||
*
|
||||
* The layout view will become owner of the database.
|
||||
* If the index is not valid, the database will be added and the new index will be returned.
|
||||
*
|
||||
* @param db_index The index of the database to replace
|
||||
* @param l2ndb The database to add
|
||||
*/
|
||||
unsigned int replace_l2ndb (unsigned int db_index, db::LayoutToNetlist *l2ndb);
|
||||
|
||||
/**
|
||||
* @brief Get the netlist database by index
|
||||
*
|
||||
|
||||
@@ -824,6 +824,9 @@ static
|
||||
std::string device_parameter_string (const db::Device *device)
|
||||
{
|
||||
std::string s;
|
||||
if (! device || ! device->device_class ()) {
|
||||
return s;
|
||||
}
|
||||
|
||||
bool first = true;
|
||||
const std::vector<db::DeviceParameterDefinition> &pd = device->device_class ()->parameter_definitions ();
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "layNetExportDialog.h"
|
||||
#include "tlProgress.h"
|
||||
#include "tlExceptions.h"
|
||||
#include "tlRecipe.h"
|
||||
#include "dbLayoutToNetlist.h"
|
||||
#include "dbNetlistDeviceClasses.h"
|
||||
#include "dbCellMapping.h"
|
||||
@@ -124,6 +125,7 @@ NetlistBrowserPage::NetlistBrowserPage (QWidget * /*parent*/)
|
||||
m_update_needed (true),
|
||||
mp_info_dialog (0),
|
||||
dm_update_highlights (this, &NetlistBrowserPage::update_highlights),
|
||||
dm_rerun_macro (this, &NetlistBrowserPage::rerun_macro),
|
||||
m_cell_context_cache (0)
|
||||
{
|
||||
Ui::NetlistBrowserPage::setupUi (this);
|
||||
@@ -188,6 +190,7 @@ NetlistBrowserPage::NetlistBrowserPage (QWidget * /*parent*/)
|
||||
|
||||
connect (m_show_all_action, SIGNAL (triggered ()), this, SLOT (show_all_clicked ()));
|
||||
connect (info_button, SIGNAL (pressed ()), this, SLOT (info_button_pressed ()));
|
||||
connect (rerun_button, SIGNAL (pressed ()), this, SLOT (rerun_button_pressed ()));
|
||||
connect (find_button, SIGNAL (pressed ()), this, SLOT (find_button_pressed ()));
|
||||
connect (forward, SIGNAL (clicked ()), this, SLOT (navigate_forward ()));
|
||||
connect (backward, SIGNAL (clicked ()), this, SLOT (navigate_back ()));
|
||||
@@ -585,6 +588,32 @@ NetlistBrowserPage::navigate_forward ()
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
NetlistBrowserPage::rerun_button_pressed ()
|
||||
{
|
||||
// NOTE: we use deferred execution, because otherwise the button won't get repainted properly
|
||||
dm_rerun_macro ();
|
||||
}
|
||||
|
||||
void
|
||||
NetlistBrowserPage::rerun_macro ()
|
||||
{
|
||||
if (! mp_database->generator ().empty ()) {
|
||||
|
||||
std::map<std::string, tl::Variant> add_pars;
|
||||
|
||||
for (unsigned int i = 0; i < mp_view->num_l2ndbs (); ++i) {
|
||||
if (mp_view->get_l2ndb (i) == mp_database.get ()) {
|
||||
add_pars["l2ndb_index"] = tl::Variant (int (i));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
tl::Recipe::make (mp_database->generator (), add_pars);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
NetlistBrowserPage::info_button_pressed ()
|
||||
{
|
||||
@@ -741,6 +770,17 @@ NetlistBrowserPage::set_db (db::LayoutToNetlist *l2ndb)
|
||||
db::LayoutVsSchematic *lvsdb = dynamic_cast<db::LayoutVsSchematic *> (l2ndb);
|
||||
mp_database.reset (l2ndb);
|
||||
|
||||
rerun_button->setEnabled (mp_database.get () && ! mp_database->generator ().empty ());
|
||||
if (rerun_button->isEnabled ()) {
|
||||
QString shortcut;
|
||||
if (! rerun_button->shortcut ().isEmpty ()) {
|
||||
shortcut = QString::fromUtf8 (" (%1)").arg (rerun_button->shortcut ().toString ());
|
||||
}
|
||||
rerun_button->setToolTip (tl::to_qstring (tl::to_string (tr ("Run ")) + mp_database->generator ()) + shortcut);
|
||||
} else {
|
||||
rerun_button->setToolTip (QString ());
|
||||
}
|
||||
|
||||
show_netlist->setVisible (lvsdb != 0);
|
||||
show_xref->setVisible (lvsdb != 0);
|
||||
|
||||
|
||||
@@ -169,6 +169,7 @@ public slots:
|
||||
private slots:
|
||||
void show_all_clicked ();
|
||||
void info_button_pressed ();
|
||||
void rerun_button_pressed ();
|
||||
void find_button_pressed ();
|
||||
void anchor_clicked (const QString &url);
|
||||
void navigate_back ();
|
||||
@@ -212,6 +213,7 @@ private:
|
||||
std::vector<const db::Circuit *> m_current_circuits;
|
||||
lay::NetInfoDialog *mp_info_dialog;
|
||||
tl::DeferredMethod<NetlistBrowserPage> dm_update_highlights;
|
||||
tl::DeferredMethod<NetlistBrowserPage> dm_rerun_macro;
|
||||
db::ContextCache m_cell_context_cache;
|
||||
|
||||
void set_db (db::LayoutToNetlist *l2ndb);
|
||||
@@ -233,6 +235,7 @@ private:
|
||||
bool produce_highlights_for_subcircuit (const db::SubCircuit *subcircuit, size_t &n_markers, const std::vector<db::DCplxTrans> &tv);
|
||||
bool produce_highlights_for_circuit (const db::Circuit *circuit, size_t &n_markers, const std::vector<db::DCplxTrans> &tv);
|
||||
void configure_marker (lay::Marker *marker, bool with_fill);
|
||||
void rerun_macro ();
|
||||
|
||||
void export_nets (const std::vector<const db::Net *> *nets);
|
||||
};
|
||||
|
||||
@@ -275,9 +275,9 @@ HEADERS = \
|
||||
layNetlistBrowserTreeModel.h \
|
||||
layLibrariesView.h
|
||||
|
||||
INCLUDEPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC
|
||||
DEPENDPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC
|
||||
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_db -lklayout_rdb
|
||||
INCLUDEPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LYM_INC
|
||||
DEPENDPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LYM_INC
|
||||
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_db -lklayout_rdb -lklayout_lym
|
||||
|
||||
INCLUDEPATH += $$QTBASIC_INC
|
||||
DEPENDPATH += $$QTBASIC_INC
|
||||
|
||||
@@ -671,6 +671,7 @@ MarkerBrowserDialog::update_content ()
|
||||
m_reload_action->setEnabled (rdb != 0);
|
||||
|
||||
browser_frame->enable_updates (false); // Avoid building the internal lists several times ...
|
||||
browser_frame->set_rdb (0); // force update
|
||||
browser_frame->set_rdb (rdb);
|
||||
browser_frame->set_max_marker_count (m_max_marker_count);
|
||||
browser_frame->set_marker_style (m_marker_color, m_marker_line_width, m_marker_vertex_size, m_marker_halo, m_marker_dither_pattern);
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
#include "dbLayoutUtils.h"
|
||||
|
||||
#include "tlRecipe.h"
|
||||
#include "layLayoutView.h"
|
||||
#include "layMarker.h"
|
||||
|
||||
@@ -1463,7 +1464,8 @@ MarkerBrowserPage::MarkerBrowserPage (QWidget * /*parent*/)
|
||||
m_marker_list_sort_order (Qt::DescendingOrder),
|
||||
m_directory_tree_sorted_section (-1),
|
||||
m_directory_tree_sort_order (Qt::DescendingOrder),
|
||||
mp_plugin_root (0)
|
||||
mp_plugin_root (0),
|
||||
dm_rerun_macro (this, &MarkerBrowserPage::rerun_macro)
|
||||
{
|
||||
Ui::MarkerBrowserPage::setupUi (this);
|
||||
|
||||
@@ -1514,6 +1516,7 @@ MarkerBrowserPage::MarkerBrowserPage (QWidget * /*parent*/)
|
||||
connect (info_text, SIGNAL (anchorClicked (const QUrl &)), this, SLOT (info_anchor_clicked (const QUrl &)));
|
||||
connect (cat_filter, SIGNAL (textEdited (const QString &)), this, SLOT (filter_changed ()));
|
||||
connect (cell_filter, SIGNAL (textEdited (const QString &)), this, SLOT (filter_changed ()));
|
||||
connect (rerun_button, SIGNAL (pressed ()), this, SLOT (rerun_button_pressed ()));
|
||||
|
||||
m_show_all_action = new QAction (QObject::tr ("Show All"), this);
|
||||
m_show_all_action->setCheckable (true);
|
||||
@@ -1678,6 +1681,17 @@ MarkerBrowserPage::set_rdb (rdb::Database *database)
|
||||
|
||||
mp_database = database;
|
||||
|
||||
rerun_button->setEnabled (mp_database && ! mp_database->generator ().empty ());
|
||||
if (rerun_button->isEnabled ()) {
|
||||
QString shortcut;
|
||||
if (! rerun_button->shortcut ().isEmpty ()) {
|
||||
shortcut = QString::fromUtf8 (" (%1)").arg (rerun_button->shortcut ().toString ());
|
||||
}
|
||||
rerun_button->setToolTip (tl::to_qstring (tl::to_string (tr ("Run ")) + mp_database->generator ()) + shortcut);
|
||||
} else {
|
||||
rerun_button->setToolTip (QString ());
|
||||
}
|
||||
|
||||
QAbstractItemModel *tree_model = directory_tree->model ();
|
||||
|
||||
MarkerBrowserTreeViewModel *new_model = new MarkerBrowserTreeViewModel ();
|
||||
@@ -2643,6 +2657,32 @@ MarkerBrowserPage::flag_button_clicked ()
|
||||
list_model->mark_data_changed ();
|
||||
}
|
||||
|
||||
void
|
||||
MarkerBrowserPage::rerun_button_pressed ()
|
||||
{
|
||||
// NOTE: we use deferred execution, because otherwise the button won't get repainted properly
|
||||
dm_rerun_macro ();
|
||||
}
|
||||
|
||||
void
|
||||
MarkerBrowserPage::rerun_macro ()
|
||||
{
|
||||
if (! mp_database->generator ().empty ()) {
|
||||
|
||||
std::map<std::string, tl::Variant> add_pars;
|
||||
|
||||
for (unsigned int i = 0; i < mp_view->num_rdbs (); ++i) {
|
||||
if (mp_view->get_rdb (i) == mp_database) {
|
||||
add_pars["rdb_index"] = tl::Variant (int (i));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
tl::Recipe::make (mp_database->generator (), add_pars);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MarkerBrowserPage::flag_menu_selected ()
|
||||
{
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
#include "ui_MarkerBrowserPage.h"
|
||||
#include "rdbMarkerBrowser.h"
|
||||
#include "tlDeferredExecution.h"
|
||||
#include "dbBox.h"
|
||||
|
||||
#include <QFrame>
|
||||
@@ -155,6 +156,7 @@ public slots:
|
||||
void dir_down_clicked ();
|
||||
void list_up_clicked ();
|
||||
void list_down_clicked ();
|
||||
void rerun_button_pressed ();
|
||||
void flag_button_clicked ();
|
||||
void flag_menu_selected ();
|
||||
void important_button_clicked ();
|
||||
@@ -205,6 +207,7 @@ private:
|
||||
int m_directory_tree_sorted_section;
|
||||
Qt::SortOrder m_directory_tree_sort_order;
|
||||
lay::PluginRoot *mp_plugin_root;
|
||||
tl::DeferredMethod<MarkerBrowserPage> dm_rerun_macro;
|
||||
|
||||
void release_markers ();
|
||||
void update_marker_list (int selection_mode);
|
||||
@@ -214,6 +217,7 @@ private:
|
||||
void mark_visited (bool visited);
|
||||
void do_update_markers ();
|
||||
void update_info_text ();
|
||||
void rerun_macro ();
|
||||
};
|
||||
|
||||
} // namespace rdb
|
||||
|
||||
Reference in New Issue
Block a user