diff options
author | don bright <hugh.m.bright@gmail.com> | 2012-07-23 01:16:37 (GMT) |
---|---|---|
committer | don bright <hugh.m.bright@gmail.com> | 2012-07-23 01:16:37 (GMT) |
commit | 3c7a85af570e5609f4a6625e06410f31fa4d4f0f (patch) | |
tree | 6f2f97a520d356bba65bc4b66e824f3e5c05dd99 | |
parent | 255190589527a6dbe4a6ef26f39abb126d348649 (diff) |
debugging and rearranging to find issue
-rw-r--r-- | src/Preferences.cc | 34 | ||||
-rw-r--r-- | src/editor.cc | 41 | ||||
-rw-r--r-- | src/editor.h | 4 | ||||
-rw-r--r-- | src/mainwin.cc | 3 |
4 files changed, 80 insertions, 2 deletions
diff --git a/src/Preferences.cc b/src/Preferences.cc index 802c50c..d1324d4 100644 --- a/src/Preferences.cc +++ b/src/Preferences.cc @@ -55,17 +55,33 @@ Preferences::Preferences(QWidget *parent) : QMainWindow(parent) this->defaultmap["editor/fontfamily"] = found_family; this->defaultmap["editor/fontsize"] = 12; + uint savedsize = getValue("editor/fontsize").toUInt(); + +// disconnect(this->fontSize, SIGNAL(currentIndexChanged(const QString&)),0,0); +// this, SLOT(on_fontSize_editTextChanged(const QString &))); +#include <iostream> + std::cout << "pref constructor: savedsize" << savedsize << "\n"; QFontDatabase db; foreach(uint size, db.standardSizes()) { + std::cout << "pref iterate standard sizes" << size << "\n"; + std::cout <<"fontsize->additem started\n"; this->fontSize->addItem(QString::number(size)); + std::cout <<"fontsize->additem completed\n"; if (size == savedsize) { + std::cout << "pref iterate standard sizes - size=savedsize, set index" << this->fontSize->count() - 1 << "\n"; this->fontSize->setCurrentIndex(this->fontSize->count()-1); } } + + std::cout << "connect fontsize to onfontsize_edittextchanged\n"; connect(this->fontSize, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(on_fontSize_editTextChanged(const QString &))); + std::cout << "connect fontsize to onfontsize_edittextchanged done \n"; + + std::cout << "pref constr: setedtext\n"; + this->fontSize->setEditText( QString("%1").arg( savedsize ) ); // Setup default settings this->defaultmap["3dview/colorscheme"] = this->colorSchemeChooser->currentItem()->text(); @@ -164,14 +180,20 @@ void Preferences::on_colorSchemeChooser_itemSelectionChanged() void Preferences::on_fontChooser_activated(const QString &family) { + std::cout << "on fontchooser activated\n"; QSettings settings; settings.setValue("editor/fontfamily", family); + std::cout << "emitting fontchanged " << getValue("editor/fontsize").toString().toStdString() << "\n"; emit fontChanged(family, getValue("editor/fontsize").toUInt()); } void Preferences::on_fontSize_editTextChanged(const QString &size) { + /// size can be wrong. ignore it. + std::cout << "on fontsize edittextchanged. set settings: " << size.toStdString() << "\n"; uint intsize = size.toUInt(); + std::cout << "on fontsize edittextchanged. intsize: " << intsize << "\n"; + std::cout << "on fontisze edittextchanged. othsize" << fontSize->currentText().toStdString() << "\n"; QSettings settings; settings.setValue("editor/fontsize", intsize); emit fontChanged(getValue("editor/fontfamily").toString(), intsize); @@ -251,6 +273,11 @@ void Preferences::removeDefaultSettings() QVariant Preferences::getValue(const QString &key) const { QSettings settings; +#include <iostream> + std::cout << "prefs: getvalue of key: " << key.toStdString() << "\n"; + std::cout << "prefs: settings.contains key: " << settings.contains(key) << "\n"; + std::cout << "prefs: settings[key]: " << settings.value(key).toString().toStdString() << "\n"; + std::cout << "prefs: defaultmap" << this->defaultmap[key].toString().toStdString() << "\n"; assert(settings.contains(key) || this->defaultmap.contains(key)); return settings.value(key, this->defaultmap[key]); } @@ -263,20 +290,25 @@ void Preferences::updateGUI() Qt::MatchExactly); if (!found.isEmpty()) this->colorSchemeChooser->setCurrentItem(found.first()); +#include <iostream> QString fontfamily = getValue("editor/fontfamily").toString(); int fidx = this->fontChooser->findText(fontfamily,Qt::MatchContains); if (fidx >= 0) { + std::cout << "font family nofind, set curent index\n"; this->fontChooser->setCurrentIndex(fidx); } QString fontsize = getValue("editor/fontsize").toString(); + std::cout << "updateGUI fontsize:" << fontsize.toStdString() << "\n"; int sidx = this->fontSize->findText(fontsize); if (sidx >= 0) { + std::cout << "font size nofind, set curent index\n"; this->fontSize->setCurrentIndex(sidx); } else { this->fontSize->setEditText(fontsize); } + std::cout << "updateGUI sidx:" << sidx << "\n"; this->openCSGWarningBox->setChecked(getValue("advanced/opencsg_show_warning").toBool()); this->enableOpenCSGBox->setChecked(getValue("advanced/enable_opencsg_opengl1x").toBool()); @@ -288,6 +320,8 @@ void Preferences::updateGUI() void Preferences::apply() const { + std::cout << "Prefs: apply\n"; + std::cout << "editor/fontsize: " << getValue("editor/fontsize").toString().toStdString() << "\n"; emit fontChanged(getValue("editor/fontfamily").toString(), getValue("editor/fontsize").toUInt()); emit requestRedraw(); emit openCSGSettingsChanged(); diff --git a/src/editor.cc b/src/editor.cc index 4482558..5cf5b42 100644 --- a/src/editor.cc +++ b/src/editor.cc @@ -1,4 +1,7 @@ #include "editor.h" +#include "Preferences.h" + +#include <iostream> #ifndef _QCODE_EDIT_ void Editor::indentSelection() @@ -70,4 +73,42 @@ void Editor::uncommentSelection() cursor.setPosition(p2, QTextCursor::KeepAnchor); setTextCursor(cursor); } + +void Editor::zoomIn() +{ + // We have the fontsize in two places. one, in the in-memory window font + // information that the user sees on the screen, and two, in the + // settings which are persistent on disk. Here we make sure they are + // in sync - we assume the fontsize from the in-memory window to be accurate, + // and trust that there is code elsewhere in OpenSCAD that has initialized + // it properly. We update the on-disk Settings with whatever is in the window. + // + // And of course we increment by one before we do all this. + // See also QT's implementation of QEditor + QSettings settings; + QFont tmp_font = this->font() ; + std::cout << "in fontsize cur" << tmp_font.pointSize() << "\n"; + if ( font().pointSize() >= 1 ) + tmp_font.setPointSize( 1 + font().pointSize() ); + else + tmp_font.setPointSize( 1 ); + std::cout << "in new fontsize cur" << tmp_font.pointSize() << "\n"; + settings.setValue("editor/fontsize", tmp_font.pointSize()); + this->setFont( tmp_font ); +} + +void Editor::zoomOut() +{ + QSettings settings; + QFont tmp_font = this->font(); + std::cout << "out fontsize cur" << tmp_font.pointSize() << "\n"; + if ( font().pointSize() >= 2 ) + tmp_font.setPointSize( -1 + font().pointSize() ); + else + tmp_font.setPointSize( 1 ); + std::cout << "out new fontsize cur" << tmp_font.pointSize() << "\n"; + settings.setValue("editor/fontsize", tmp_font.pointSize()); + this->setFont( tmp_font ); +} + #endif diff --git a/src/editor.h b/src/editor.h index 3088d20..f39c067 100644 --- a/src/editor.h +++ b/src/editor.h @@ -18,12 +18,12 @@ public: void setPlainText(const QString& text) { setText(text); } public slots: //void zoomIn() { zoom(1); } - void zoomIn(int n = 1) { zoom(n); } //void zoomOut() { zoom(-1); } - void zoomOut(int n = 1) { zoom(-n); } #else Editor(QWidget *parent) : QTextEdit(parent) { setAcceptRichText(false); } public slots: + void zoomIn(); + void zoomOut(); void setLineWrapping(bool on) { if(on) setWordWrapMode(QTextOption::WrapAnywhere); } void setContentModified(bool y) { document()->setModified(y); } bool isContentModified() { return document()->isModified(); } diff --git a/src/mainwin.cc b/src/mainwin.cc index 3fdee6b..7c4738c 100644 --- a/src/mainwin.cc +++ b/src/mainwin.cc @@ -1822,6 +1822,9 @@ MainWindow::preferences() void MainWindow::setFont(const QString &family, uint size) { +#include <iostream> + std::cout << "mainwin setFont\n"; + std::cout << "pref size: " << Preferences::inst()->getValue("editor/fontsize").toUInt() << "\n"; QFont font; if (!family.isEmpty()) font.setFamily(family); else font.setFixedPitch(true); |