Changeset View
Changeset View
Standalone View
Standalone View
src/core/KexiWindow.cpp
Show First 20 Lines • Show All 164 Lines • ▼ Show 20 Line(s) | 163 | { | |||
---|---|---|---|---|---|
165 | m_destroying = true; | 165 | m_destroying = true; | ||
166 | delete d; | 166 | delete d; | ||
167 | d = 0; | 167 | d = 0; | ||
168 | } | 168 | } | ||
169 | 169 | | |||
170 | void KexiWindow::createSubwidgets() | 170 | void KexiWindow::createSubwidgets() | ||
171 | { | 171 | { | ||
172 | d->mainLyr = new QVBoxLayout(this); | 172 | d->mainLyr = new QVBoxLayout(this); | ||
173 | d->mainLyr->setContentsMargins(0, KexiUtils::marginHint() / 2, 0, 0); | 173 | d->mainLyr->setContentsMargins(0, 0, 0, 0); | ||
174 | d->stack = new QStackedWidget(this); | 174 | d->stack = new QStackedWidget(this); | ||
175 | d->mainLyr->addWidget(d->stack); | 175 | d->mainLyr->addWidget(d->stack); | ||
176 | } | 176 | } | ||
177 | 177 | | |||
178 | KexiView *KexiWindow::selectedView() const | 178 | KexiView *KexiWindow::selectedView() const | ||
179 | { | 179 | { | ||
180 | if (m_destroying) | 180 | if (m_destroying) | ||
181 | return 0; | 181 | return 0; | ||
▲ Show 20 Lines • Show All 318 Lines • ▼ Show 20 Line(s) | 499 | /*! @todo KEXI3 StaticPart | |||
500 | KexiPart::StaticPart *staticPart = dynamic_cast<KexiPart::StaticPart*>((KexiPart::Part*)d->part); | 500 | KexiPart::StaticPart *staticPart = dynamic_cast<KexiPart::StaticPart*>((KexiPart::Part*)d->part); | ||
501 | if (staticPart) | 501 | if (staticPart) | ||
502 | newView = staticPart->createView(this, this, d->item, newViewMode, staticObjectArgs); | 502 | newView = staticPart->createView(this, this, d->item, newViewMode, staticObjectArgs); | ||
503 | else*/ | 503 | else*/ | ||
504 | newView = d->part->createView(this, this, d->item, newViewMode, staticObjectArgs); | 504 | newView = d->part->createView(this, this, d->item, newViewMode, staticObjectArgs); | ||
505 | KexiUtils::removeWaitCursor(); | 505 | KexiUtils::removeWaitCursor(); | ||
506 | if (!newView) { | 506 | if (!newView) { | ||
507 | //js TODO error? | 507 | //js TODO error? | ||
508 | qWarning() << "Switching to mode " << newViewMode << " failed. Previous mode " | 508 | qWarning() << "Switching to mode" << newViewMode << "failed. Previous mode " | ||
509 | << d->currentViewMode << " restored."; | 509 | << d->currentViewMode << "restored."; | ||
510 | return false; | 510 | return false; | ||
511 | } | 511 | } | ||
512 | d->creatingViewsMode = Kexi::NoViewMode; | 512 | d->creatingViewsMode = Kexi::NoViewMode; | ||
513 | newView->initViewActions(); | 513 | newView->initViewActions(); | ||
514 | newView->initMainMenuActions(); | 514 | newView->initMainMenuActions(); | ||
515 | addView(newView, newViewMode); | 515 | addView(newView, newViewMode); | ||
516 | } | 516 | } | ||
517 | const Kexi::ViewMode prevViewMode = d->currentViewMode; | 517 | const Kexi::ViewMode prevViewMode = d->currentViewMode; | ||
518 | res = true; | 518 | res = true; | ||
519 | if (designModePreloadedForTextModeHack) { | 519 | if (designModePreloadedForTextModeHack) { | ||
520 | d->currentViewMode = Kexi::NoViewMode; //SAFE? | 520 | d->currentViewMode = Kexi::NoViewMode; //SAFE? | ||
521 | } | 521 | } | ||
522 | bool wasDirty = newView->isDirty(); // remember and restore the flag if the view was clean | 522 | bool wasDirty = newView->isDirty(); // remember and restore the flag if the view was clean | ||
523 | res = newView->beforeSwitchTo(newViewMode, &dontStore); | 523 | res = newView->beforeSwitchTo(newViewMode, &dontStore); | ||
524 | if (!wasDirty) { | 524 | if (!wasDirty) { | ||
525 | newView->setDirty(false); | 525 | newView->setDirty(false); | ||
526 | } | 526 | } | ||
527 | *proposeOpeningInTextViewModeBecauseOfProblems | 527 | *proposeOpeningInTextViewModeBecauseOfProblems | ||
528 | = data()->proposeOpeningInTextViewModeBecauseOfProblems; | 528 | = data()->proposeOpeningInTextViewModeBecauseOfProblems; | ||
529 | if (!res) { | 529 | if (!res) { | ||
530 | removeView(newViewMode); | 530 | removeView(newViewMode); | ||
531 | delete newView; | 531 | delete newView; | ||
532 | qWarning() << "Switching to mode " << newViewMode << " failed. Previous mode " | 532 | qWarning() << "Switching to mode" << newViewMode << "failed. Previous mode" | ||
533 | << d->currentViewMode << " restored."; | 533 | << d->currentViewMode << "restored."; | ||
534 | return false; | 534 | return false; | ||
535 | } | 535 | } | ||
536 | d->currentViewMode = newViewMode; | 536 | d->currentViewMode = newViewMode; | ||
537 | d->newlySelectedView = newView; | 537 | d->newlySelectedView = newView; | ||
538 | if (prevViewMode == Kexi::NoViewMode) | 538 | if (prevViewMode == Kexi::NoViewMode) | ||
539 | d->newlySelectedView->setDirty(false); | 539 | d->newlySelectedView->setDirty(false); | ||
540 | 540 | | |||
541 | if ((prevViewMode == Kexi::DesignViewMode && d->currentViewMode == Kexi::TextViewMode) | 541 | if ((prevViewMode == Kexi::DesignViewMode && d->currentViewMode == Kexi::TextViewMode) | ||
Show All 9 Lines | 550 | res = newView->afterSwitchFrom( | |||
551 | designModePreloadedForTextModeHack ? Kexi::NoViewMode : prevViewMode); | 551 | designModePreloadedForTextModeHack ? Kexi::NoViewMode : prevViewMode); | ||
552 | newView->setDirty(wasDirty); | 552 | newView->setDirty(wasDirty); | ||
553 | 553 | | |||
554 | *proposeOpeningInTextViewModeBecauseOfProblems | 554 | *proposeOpeningInTextViewModeBecauseOfProblems | ||
555 | = data()->proposeOpeningInTextViewModeBecauseOfProblems; | 555 | = data()->proposeOpeningInTextViewModeBecauseOfProblems; | ||
556 | if (!res) { | 556 | if (!res) { | ||
557 | removeView(newViewMode); | 557 | removeView(newViewMode); | ||
558 | delete newView; | 558 | delete newView; | ||
559 | qWarning() << "Switching to mode " << newViewMode << " failed. Previous mode " | 559 | qWarning() << "Switching to mode" << newViewMode << "failed. Previous mode" | ||
560 | << prevViewMode << " restored."; | 560 | << prevViewMode << "restored."; | ||
561 | const Kexi::ObjectStatus status(*this); | 561 | const Kexi::ObjectStatus status(*this); | ||
562 | setStatus(KexiMainWindowIface::global()->project()->dbConnection(), | 562 | setStatus(KexiMainWindowIface::global()->project()->dbConnection(), | ||
563 | xi18n("Switching to other view failed (%1).", Kexi::nameForViewMode(newViewMode)), ""); | 563 | xi18n("Switching to other view failed (%1).", Kexi::nameForViewMode(newViewMode)), ""); | ||
564 | append(status); | 564 | append(status); | ||
565 | d->currentViewMode = prevViewMode; | 565 | d->currentViewMode = prevViewMode; | ||
566 | return false; | 566 | return false; | ||
567 | } | 567 | } | ||
568 | d->newlySelectedView = 0; | 568 | d->newlySelectedView = 0; | ||
▲ Show 20 Lines • Show All 260 Lines • ▼ Show 20 Line(s) | 777 | { | |||
829 | setDirty(false); | 829 | setDirty(false); | ||
830 | 830 | | |||
831 | return true; | 831 | return true; | ||
832 | } | 832 | } | ||
833 | 833 | | |||
834 | void KexiWindow::activate() | 834 | void KexiWindow::activate() | ||
835 | { | 835 | { | ||
836 | KexiView *v = selectedView(); | 836 | KexiView *v = selectedView(); | ||
837 | //qDebug() << "focusWidget(): " << focusWidget()->name(); | 837 | //qDebug() << "focusWidget():" << focusWidget()->name(); | ||
838 | if (!KDbUtils::hasParent(v, KexiMainWindowIface::global()->focusWidget())) { | 838 | if (!KDbUtils::hasParent(v, KexiMainWindowIface::global()->focusWidget())) { | ||
839 | //ah, focused widget is not in this view, move focus: | 839 | //ah, focused widget is not in this view, move focus: | ||
840 | if (v) | 840 | if (v) | ||
841 | v->setFocus(); | 841 | v->setFocus(); | ||
842 | } | 842 | } | ||
843 | if (v) | 843 | if (v) | ||
844 | v->updateActions(true); | 844 | v->updateActions(true); | ||
845 | } | 845 | } | ||
▲ Show 20 Lines • Show All 45 Lines • Show Last 20 Lines |