diff options
author | Nick Fedosyeyev <nick.ut2uz@gmail.com> | 2016-06-30 17:00:30 +0300 |
---|---|---|
committer | Nick Fedosyeyev <nick.ut2uz@gmail.com> | 2016-06-30 17:00:30 +0300 |
commit | 1dac45a5419509a0c7e2e750b53a4a9c05caba33 (patch) | |
tree | bb95d47d589a8c7a5e2c1b9f3fcb04c20c4fff19 | |
parent | d6753bab4b5c8532dfb866cb6af08f512cc2faf2 (diff) | |
parent | 22e5a784aa8ce6fe462981dc91eeee03f20706d5 (diff) |
Added Sync and Cancel buttons are added to sllewDilaog. StellariumScope support is added.scope-uz
-rw-r--r-- | plugins/TelescopeControl/src/gui/SlewDialog.cpp | 87 | ||||
-rw-r--r-- | plugins/TelescopeControl/src/gui/SlewDialog.hpp | 4 | ||||
-rw-r--r-- | plugins/TelescopeControl/src/gui/slewDialog.ui | 88 | ||||
-rw-r--r-- | plugins/TelescopeControl/src/servers/Lx200Command.cpp | 2 |
4 files changed, 152 insertions, 29 deletions
diff --git a/plugins/TelescopeControl/src/gui/SlewDialog.cpp b/plugins/TelescopeControl/src/gui/SlewDialog.cpp index abe2cc6390..f68846f63c 100644 --- a/plugins/TelescopeControl/src/gui/SlewDialog.cpp +++ b/plugins/TelescopeControl/src/gui/SlewDialog.cpp @@ -18,6 +18,9 @@ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA. */ +// with changes regarding sync/cancel support +// made by Nick Fedosyeyev (nick-ut2uz) nick.ut2uz@gmail.com + #include "Dialog.hpp" #include "AngleSpinBox.hpp" #include "StelApp.hpp" @@ -50,6 +53,7 @@ SlewDialog::~SlewDialog() storedPointsDialog = NULL; } + void SlewDialog::retranslate() { if (dialog) @@ -70,7 +74,9 @@ void SlewDialog::createDialogContent() connect(ui->radioButtonDecimal, SIGNAL(toggled(bool)), this, SLOT(setFormatDecimal(bool))); connect(ui->pushButtonSlew, SIGNAL(clicked()), this, SLOT(slew())); - connect(ui->pushButtonConfigure, SIGNAL(clicked()), this, SLOT(showConfiguration())); + connect(ui->pushButtonSync, SIGNAL(clicked()), this, SLOT(sync())); + connect(ui->pushButtonCancelSlew, SIGNAL(clicked()), this, SLOT(cancelSlew())); + connect(ui->pushButtonConfigure, SIGNAL(clicked()), this, SLOT(showConfiguration())); connect(telescopeManager, SIGNAL(clientConnected(int, QString)), this, SLOT(addTelescope(int, QString))); connect(telescopeManager, SIGNAL(clientDisconnected(int)), this, SLOT(removeTelescope(int))); @@ -81,6 +87,9 @@ void SlewDialog::createDialogContent() connect(ui->pushButtonCurrent, SIGNAL(clicked()), this, SLOT(getCurrentObjectInfo())); connect(ui->pushButtonCenter, SIGNAL(clicked()), this, SLOT(getCenterInfo())); + connect(GETSTELMODULE(StelObjectMgr), SIGNAL(selectedObjectChanged(StelModule::StelModuleSelectAction)), this, SLOT(getCurrentObjectInfo())); + + //Coordinates are in HMS by default: ui->radioButtonHMS->setChecked(true); @@ -144,9 +153,10 @@ void SlewDialog::updateTelescopeList() QHash<int, QString> connectedSlotsByNumber = telescopeManager->getConnectedClientsNames(); foreach(const int slot, connectedSlotsByNumber.keys()) { - QString telescopeName = connectedSlotsByNumber.value(slot); - connectedSlotsByName.insert(telescopeName, slot); - ui->comboBoxTelescope->addItem(telescopeName); + QString telescopeName = connectedSlotsByNumber.value(slot); + //connectedSlotsByName.insert(telescopeName, slot); + //ui->comboBoxTelescope->addItem(telescopeName); + addTelescope(slot, telescopeName); } updateTelescopeControls(); @@ -167,7 +177,22 @@ void SlewDialog::addTelescope(int slot, QString name) return; connectedSlotsByName.insert(name, slot); - ui->comboBoxTelescope->addItem(name); + + bool insert = true; + if (name.compare("Sync")==0) + { + ui->pushButtonSync->setEnabled(true); + insert = false; + } + if (name.compare("Cancel")==0) + { + ui->pushButtonCancelSlew->setEnabled(true); + insert = false; + } + + if (insert) + ui->comboBoxTelescope->addItem(name); + updateTelescopeControls(); } @@ -198,23 +223,51 @@ void SlewDialog::removeTelescope(int slot) updateTelescopeControls(); } +void SlewDialog::slew(int slot) +{ + double radiansRA = ui->spinBoxRA->valueRadians(); + double radiansDec = ui->spinBoxDec->valueRadians(); + + Vec3d targetPosition; + StelUtils::spheToRect(radiansRA, radiansDec, targetPosition); + + telescopeManager->telescopeGoto(slot, targetPosition); +} + + void SlewDialog::slew() { - double radiansRA = ui->spinBoxRA->valueRadians(); - double radiansDec = ui->spinBoxDec->valueRadians(); int slot = connectedSlotsByName.value(ui->comboBoxTelescope->currentText()); + slew(slot); - Vec3d targetPosition; - StelUtils::spheToRect(radiansRA, radiansDec, targetPosition); +} - telescopeManager->telescopeGoto(slot, targetPosition); +void SlewDialog::sync() +{ + int slot = connectedSlotsByName.value("Sync"); + slew(slot); +} + +void SlewDialog::cancelSlew() +{ + int slot = connectedSlotsByName.value("Cancel"); + slew(slot); } void SlewDialog::getCurrentObjectInfo() { const QList<StelObjectP>& selected = GETSTELMODULE(StelObjectMgr)->getSelectedObject(); if (!selected.isEmpty()) { - double dec_j2000 = 0; + + if (ui->comboBoxStoredPoints->count()==0) + ui->comboBoxStoredPoints->addItem(selected[0]->getEnglishName()); + else + ui->comboBoxStoredPoints->setCurrentIndex(0); + + ui->comboBoxStoredPoints->setItemText(0,selected[0]->getEnglishName()); + + + double dec_j2000 = 0; double ra_j2000 = 0; StelUtils::rectToSphe(&ra_j2000,&dec_j2000,selected[0]->getJ2000EquatorialPos(StelApp::getInstance().getCore())); ui->spinBoxRA->setRadians(ra_j2000); @@ -224,7 +277,16 @@ void SlewDialog::getCurrentObjectInfo() void SlewDialog::getCenterInfo() { - StelCore *core = StelApp::getInstance().getCore(); + QString txt = ui->pushButtonCenter->text(); + if (ui->comboBoxStoredPoints->count()==0) + ui->comboBoxStoredPoints->addItem(txt); + else + ui->comboBoxStoredPoints->setCurrentIndex(0); + + ui->comboBoxStoredPoints->setItemText(0,txt); + + + StelCore *core = StelApp::getInstance().getCore(); const StelProjectorP projector = core->getProjection(StelCore::FrameEquinoxEqu); Vec3d centerPosition; Vec2f center = projector->getViewportCenter(); @@ -300,6 +362,7 @@ void SlewDialog::getStoredPointInfo() ui->spinBoxRA->setRadians(sp.radiansRA); ui->spinBoxDec->setRadians(sp.radiansDec); + } void SlewDialog::savePointsToFile() diff --git a/plugins/TelescopeControl/src/gui/SlewDialog.hpp b/plugins/TelescopeControl/src/gui/SlewDialog.hpp index 204701401b..462f60f369 100644 --- a/plugins/TelescopeControl/src/gui/SlewDialog.hpp +++ b/plugins/TelescopeControl/src/gui/SlewDialog.hpp @@ -57,6 +57,8 @@ private slots: //! reads the fields and slews a telescope void slew(); + void sync(); + void cancelSlew(); void addTelescope(int slot, QString name); void removeTelescope(int slot); @@ -103,6 +105,8 @@ private: void savePointsToFile(); void loadPointsFromFile(); + + void slew(int slot); }; #endif // _SLEWDIALOG_ diff --git a/plugins/TelescopeControl/src/gui/slewDialog.ui b/plugins/TelescopeControl/src/gui/slewDialog.ui index 514d5dc895..5f85c8e082 100644 --- a/plugins/TelescopeControl/src/gui/slewDialog.ui +++ b/plugins/TelescopeControl/src/gui/slewDialog.ui @@ -6,7 +6,7 @@ <rect> <x>0</x> <y>0</y> - <width>400</width> + <width>430</width> <height>399</height> </rect> </property> @@ -385,20 +385,77 @@ </widget> </item> <item> - <widget class="QPushButton" name="pushButtonSlew"> - <property name="minimumSize"> - <size> - <width>50</width> - <height>48</height> - </size> - </property> - <property name="text"> - <string>&Slew</string> - </property> - <property name="default"> - <bool>true</bool> - </property> - </widget> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QPushButton" name="pushButtonSlew"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>50</width> + <height>48</height> + </size> + </property> + <property name="text"> + <string>&Slew</string> + </property> + <property name="default"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="pushButtonSync"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>50</width> + <height>48</height> + </size> + </property> + <property name="text"> + <string>Sync</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="pushButtonCancelSlew"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>50</width> + <height>48</height> + </size> + </property> + <property name="text"> + <string>Cancel</string> + </property> + </widget> + </item> + </layout> </item> </layout> </widget> @@ -452,7 +509,6 @@ margin-bottom:10px;</string> <tabstop>radioButtonDMS</tabstop> <tabstop>radioButtonDecimal</tabstop> <tabstop>comboBoxTelescope</tabstop> - <tabstop>pushButtonSlew</tabstop> <tabstop>pushButtonConfigure</tabstop> </tabstops> <resources/> diff --git a/plugins/TelescopeControl/src/servers/Lx200Command.cpp b/plugins/TelescopeControl/src/servers/Lx200Command.cpp index a872679b32..2da1053f97 100644 --- a/plugins/TelescopeControl/src/servers/Lx200Command.cpp +++ b/plugins/TelescopeControl/src/servers/Lx200Command.cpp @@ -174,7 +174,7 @@ bool Lx200CommandSetSelectedDec::writeCommandToBuffer(char *&p, char *end) p[-3] = ':'; p[-4] = '0' + (x % 10); x /= 10; p[-5] = '0' + (x % 6); x /= 6; - p[-6] = 223; // degree symbol + p[-6] = '\xDF'; // = 223, degree symbol p[-7] = '0' + (x % 10); x /= 10; p[-8] = '0' + x; *p++ = '#'; |