BasicmLearningEditor::BasicmLearningEditor(TemplateCore *core, QWidget *parent) : TemplateEditor(core, parent), m_ui(new Ui::BasicmLearningEditor) { m_ui->setupUi(this); // Set validators. QRegExpValidator *author_validator = new QRegExpValidator(this); QRegExpValidator *title_validator = new QRegExpValidator(this); author_validator->setRegExp(QRegExp(".{,50}")); title_validator->setRegExp(QRegExp(".{,100}")); m_ui->m_txtAuthor->lineEdit()->setValidator(author_validator); m_ui->m_txtName->lineEdit()->setValidator(title_validator); // Set tab order. QList<QWidget*> tab_order_widgets; tab_order_widgets << m_ui->m_txtTitle->lineEdit() << m_ui->m_txtDescription << m_ui->m_txtAuthor->lineEdit() << m_ui->m_txtName->lineEdit() << m_ui->m_listItems << m_ui->m_btnItemAdd << m_ui->m_btnItemRemove << m_ui->m_btnItemUp << m_ui->m_btnItemDown; for (int i = 1; i < tab_order_widgets.size(); i++) { setTabOrder(tab_order_widgets.at(i - 1), tab_order_widgets.at(i)); } m_ui->m_txtTitle->lineEdit()->setPlaceholderText(tr("Title of the item")); m_ui->m_txtNumberOfItems->lineEdit()->setEnabled(false); m_ui->m_txtAuthor->lineEdit()->setPlaceholderText(tr("Author of this collection")); m_ui->m_txtName->lineEdit()->setPlaceholderText(tr("Name of this collection")); IconFactory *factory = IconFactory::instance(); m_ui->m_btnItemAdd->setIcon(factory->fromTheme("item-add")); m_ui->m_btnItemRemove->setIcon(factory->fromTheme("item-remove")); m_ui->m_btnItemUp->setIcon(factory->fromTheme("move-up")); m_ui->m_btnItemDown->setIcon(factory->fromTheme("move-down")); connect(m_ui->m_txtTitle->lineEdit(), SIGNAL(textChanged(QString)), this, SLOT(checkTitle(QString))); connect(m_ui->m_btnItemAdd, SIGNAL(clicked()), this, SLOT(addNewItem())); connect(m_ui->m_btnItemRemove, SIGNAL(clicked()), this, SLOT(removeSelectedItem())); connect(m_ui->m_txtDescription, SIGNAL(textChanged()), this, SLOT(saveItem())); connect(m_ui->m_txtTitle->lineEdit(), SIGNAL(textEdited(QString)), this, SLOT(saveItem())); connect(m_ui->m_listItems, SIGNAL(currentRowChanged(int)), this, SLOT(displayItem(int))); connect(m_ui->m_btnItemUp, SIGNAL(clicked()), this, SLOT(moveItemUp())); connect(m_ui->m_btnItemDown, SIGNAL(clicked()), this, SLOT(moveItemDown())); connect(m_ui->m_txtAuthor->lineEdit(), SIGNAL(textChanged(QString)), this, SLOT(onAuthorChanged(QString))); connect(m_ui->m_txtName->lineEdit(), SIGNAL(textChanged(QString)), this, SLOT(onNameChanged(QString))); checkTitle(m_ui->m_txtTitle->lineEdit()->text()); checkAuthor(); checkName(); setEditorsEnabled(false); updateItemCount(); }
void Configurator::currentItemChanged( QListWidgetItem* current, QListWidgetItem* previous ) { _currentWigetItem = current; saveItem( previous ); loadItem( current ); }
bool IOMapSerialize::saveTile(PropWriteStream& stream, const Tile* tile) { int32_t tileCount = tile->getThingCount(); if(!tileCount) return true; std::vector<Item*> items; Item* item = NULL; for(; tileCount > 0; --tileCount) { if((item = tile->__getThing(tileCount - 1)->getItem()) && (item->isMoveable() || item->forceSerialize())) items.push_back(item); } tileCount = items.size(); //lame, but at least we don't need a new variable if(tileCount > 0) { stream.ADD_USHORT(tile->getPosition().x); stream.ADD_USHORT(tile->getPosition().y); stream.ADD_UCHAR(tile->getPosition().z); stream.ADD_ULONG(tileCount); for(std::vector<Item*>::iterator it = items.begin(); it != items.end(); ++it) saveItem(stream, (*it)); } return true; }
void IOMapSerialize::saveTile(PropWriteStream& stream, const Tile* tile) { const Position& tilePosition = tile->getPosition(); if (tilePosition.x == 0 || tilePosition.y == 0) { return; } std::vector<Item*> items; if (const TileItemVector* tileItems = tile->getItemList()) { for (ItemVector::const_reverse_iterator it = tileItems->rbegin(), rend = tileItems->rend(); it != rend; ++it) { Item* item = (*it); // Note that these are NEGATED, ie. these are the items that will be saved. if (!(!item->isNotMoveable() || item->getDoor() || (item->getContainer() && !item->getContainer()->empty()) || item->canWriteText() || item->getBed())) { continue; } items.push_back(item); } } if (!items.empty()) { stream.ADD_USHORT(tilePosition.x); stream.ADD_USHORT(tilePosition.y); stream.ADD_UCHAR(tilePosition.z); stream.ADD_ULONG(items.size()); for (const Item* item : items) { saveItem(stream, item); } } }
void IOMapSerialize::saveTile(PropWriteStream& stream, const Tile* tile) { const TileItemVector* tileItems = tile->getItemList(); if (!tileItems) { return; } std::forward_list<Item*> items; uint16_t count = 0; for (Item* item : *tileItems) { const ItemType& it = Item::items[item->getID()]; // Note that these are NEGATED, ie. these are the items that will be saved. if (!(it.moveable || item->getDoor() || (item->getContainer() && !item->getContainer()->empty()) || it.canWriteText || item->getBed())) { continue; } items.push_front(item); ++count; } if (!items.empty()) { const Position& tilePosition = tile->getPosition(); stream.write<uint16_t>(tilePosition.x); stream.write<uint16_t>(tilePosition.y); stream.write<uint8_t>(tilePosition.z); stream.write<uint32_t>(count); for (const Item* item : items) { saveItem(stream, item); } } }
bool IOMapSerialize::saveTile(PropWriteStream& stream, const Tile* tile) { int32_t tileCount = tile->getThingCount(); if(!tileCount) return true; std::vector<Item*> items; Item* item = NULL; for(; tileCount > 0; --tileCount) { if((item = tile->__getThing(tileCount - 1)->getItem()) && // CHECKME: wouldn't it be better to use TileItemVector in here? (item->isMovable() || item->forceSerialize())) items.push_back(item); } tileCount = items.size(); //lame, but at least we don't need a new variable if(tileCount > 0) { stream.addShort(tile->getPosition().x); stream.addShort(tile->getPosition().y); stream.addByte(tile->getPosition().z); stream.addLong(tileCount); for(std::vector<Item*>::iterator it = items.begin(); it != items.end(); ++it) saveItem(stream, (*it)); } return true; }
void BtBookmarkLoader::saveItem(QTreeWidgetItem* item, QDomElement& parentElement) { BtBookmarkFolder* folderItem = 0; BtBookmarkItem* bookmarkItem = 0; if ((folderItem = dynamic_cast<BtBookmarkFolder*>(item))) { QDomElement elem = parentElement.ownerDocument().createElement("Folder"); elem.setAttribute("caption", folderItem->text(0)); parentElement.appendChild(elem); for (int i = 0; i < folderItem->childCount(); i++) { saveItem(folderItem->child(i), elem); } } else if ((bookmarkItem = dynamic_cast<BtBookmarkItem*>(item))) { QDomElement elem = parentElement.ownerDocument().createElement("Bookmark"); elem.setAttribute("key", bookmarkItem->englishKey()); elem.setAttribute("description", bookmarkItem->description()); elem.setAttribute("modulename", bookmarkItem->m_moduleName); elem.setAttribute("moduledescription", bookmarkItem->module() ? bookmarkItem->module()->config(CSwordModuleInfo::Description) : QString::null); parentElement.appendChild(elem); } }
int MainWindowImpl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QMainWindow::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: frameSignal(); break; case 1: resetTxSignal(); break; case 2: showDialog(); break; case 3: deleteItem(); break; case 4: uploadItem(); break; case 5: saveItem(); break; case 6: setPathDialog(); break; case 7: startAnimation(); break; case 8: setanimationtime(); break; case 9: animationFinished(); break; case 10: showAddCursorDialog(); break; case 11: showAddEllipseDialog(); break; case 12: animationslidertime((*reinterpret_cast< int(*)>(_a[1]))); break; case 13: opacitySliderImpl((*reinterpret_cast< int(*)>(_a[1]))); break; case 14: showConfigureDialog(); break; case 15: startTx(); break; case 16: restartPacketTimer(); break; case 17: resetTx(); break; case 18: showDebugWindow(); break; case 19: showAboutQMTSim(); break; case 20: showReadme(); break; case 21: viewButtonSlot(); break; case 22: showResizeDialog(); break; } _id -= 23; } return _id; }
void PromoBatchMaster::slotLabels() { if (!saveItem(true)) return; dataToWidget(); LabelBatch batch; batch.setNumber("#"); batch.setDescription(tr("From promo batch #%1").arg(_curr.number())); batch.setStoreId(_curr.storeId()); for (unsigned int i = 0; i < _curr.items().size(); ++i) { const PromoBatchItem& line1 = _curr.items()[i]; if (line1.item_id == INVALID_ID) continue; LabelBatchItem line2; line2.item_id = line1.item_id; line2.number = line1.number; line2.size = line1.size; line2.price = line1.price; line2.count = 1; batch.items().push_back(line2); } if (_db->create(batch)) { QString message = tr("Created label batch #%1").arg(batch.number()); QMessageBox::information(this, tr("Information"), message); } else { QString message = tr("Error creating label batch"); QMessageBox::critical(this, tr("Error"), message); } }
void DishInfoDialog::slt_save() { if (!this->checkResult()) return; if (saveItem()) this->close(); }
void GeneralMaster::slotRecurring() { if (!saveItem(true)) return; RecurringMaster* screen = new RecurringMaster(_main); screen->setGltx(_curr.id()); screen->show(); }
void DishInfoDialog::slt_apply() { if (!this->checkResult()) return; if (saveItem()) { this->setMenuItem(_menuItem); } }
void CustomerMaster::slotEmail() { if (!saveItem(true)) return; Company company; _quasar->db()->lookup(company); SendEmail* email = new SendEmail(_main); email->setCard(_curr.id()); email->show(); }
bool IOMapSerialize::saveItem(PropWriteStream& stream, const Item* item) { stream.addShort(item->getID()); item->serializeAttr(stream); if(const Container* container = item->getContainer()) { stream.addByte(ATTR_CONTAINER_ITEMS); stream.addLong(container->size()); for(ItemList::const_reverse_iterator rit = container->getReversedItems(); rit != container->getReversedEnd(); ++rit) saveItem(stream, (*rit)); } stream.addByte(ATTR_END); return true; }
// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- // handlers for controls // ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- void Configurator::currentChanged( int index ) { // saving data for the previous section if( _configOptions->children().count() && _currentWigetItem ) { saveItem( _currentWigetItem ); _currentWigetItem->listWidget()->setCurrentRow( -1 ); } // find the new section and set current item to first QListWidget* listWidget = qobject_cast<QListWidget*>( _sections->widget(index) ); if( 0 == listWidget ) return; listWidget->setCurrentRow( 0 ); }
void RecurringMaster::slotPost() { if (!saveItem(true)) return; Gltx gltx; if (!_quasar->db()->lookup(_curr.gltxId(), gltx)) { QMessageBox::critical(this, tr("Error"), tr("Can't read transaction")); return; } QDate nextDue = _curr.nextDue(); if (nextDue > QDate::currentDate()) { QString message = tr("The next due date is in the future\n" "so this will post a future transaction.\n" "Are you sure you want to do this?"); int choice = QMessageBox::warning(this, tr("Warning"), message, tr("Yes"), tr("No")); if (choice != 0) return; } if (_curr.cardGroup() != INVALID_ID) { CardSelect conditions; conditions.group_id = _curr.cardGroup(); vector<Card> cards; _quasar->db()->select(cards, conditions); for (unsigned int i = 0; i < cards.size(); ++i) if (!postOne(gltx, cards[i].id())) return; } else { if (!postOne(gltx, gltx.cardId())) return; } int postingCnt = _curr.postingCount(); int maxPostings = _curr.maxPostings(); Recurring old = _curr; _curr.setLastPosted(nextDue); _curr.setPostingCount(++postingCnt); if (maxPostings > 0 && postingCnt >= maxPostings) _quasar->db()->setActive(_curr, false); _quasar->db()->update(old, _curr); _id = _curr.id(); startEdit(); }
void IOMapSerialize::saveItem(PropWriteStream& stream, const Item* item) { const Container* container = item->getContainer(); // Write ID & props stream.write<uint16_t>(item->getID()); item->serializeAttr(stream); if (container) { // Hack our way into the attributes stream.write<uint8_t>(ATTR_CONTAINER_ITEMS); stream.write<uint32_t>(container->size()); for (auto it = container->getReversedItems(), end = container->getReversedEnd(); it != end; ++it) { saveItem(stream, *it); } } stream.write<uint8_t>(0x00); // attr end }
void IOMapSerialize::saveItem(PropWriteStream& stream, const Item* item) { const Container* container = item->getContainer(); // Write ID & props stream.ADD_USHORT(item->getID()); item->serializeAttr(stream); if (container) { // Hack our way into the attributes stream.ADD_UCHAR(ATTR_CONTAINER_ITEMS); stream.ADD_ULONG(container->size()); for (ItemDeque::const_reverse_iterator it = container->getReversedItems(), end = container->getReversedEnd(); it != end; ++it) { saveItem(stream, *it); } } stream.ADD_UCHAR(0x00); // attr end }
docItem::docItem(QList<int> _list, int _curr, int _doc, QWidget *parent):QDialog(parent){ ui.setupUi(this); list = _list; curr = _curr; doc = _doc; QSqlQuery _v(QString("select docs.vid from docs where docs.id = \'%1\'").arg(doc)); _v.next(); vid = _v.value(0).toInt(); ui.spinBox_id_book->hide(); ui.tableWidget_res->setColumnHidden(0, true); ui.tableWidget_res->setColumnHidden(7, true); ui.tableWidget_res->setColumnHidden(8, true); if (vid == 1){ ui.tableWidget_res->setColumnHidden(6, true); ui.radioButton_identifier->hide(); } else if (vid == 2){ ui.lineEdit_place->hide(); ui.label_3->hide(); ui.lineEdit_identifier->setReadOnly(true); } openItem(); readSetting(); connect(ui.pushButton_close, SIGNAL(clicked()), this, SLOT(close())); connect(ui.lineEdit_search, SIGNAL(textEdited(QString)), this, SLOT(searchBook(QString))); connect(ui.tableWidget_res, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(selectBook())); connect(ui.pushButton_save, SIGNAL(clicked()), this, SLOT(saveItem())); connect(ui.pushButton_del, SIGNAL(clicked()), this, SLOT(deleteItem())); connect(ui.pushButton_toFirst, SIGNAL(clicked()), this, SLOT(toFirst())); connect(ui.pushButton_toLast, SIGNAL(clicked()), this, SLOT(toLast())); connect(ui.pushButton_toNext, SIGNAL(clicked()), this, SLOT(toNext())); connect(ui.pushButton_toPrev, SIGNAL(clicked()), this, SLOT(toPrev())); }
void BtBookmarkLoader::saveTreeFromRootItem(QTreeWidgetItem* rootItem, QString fileName, bool forceOverwrite) { Q_ASSERT(rootItem); if (fileName.isNull()) { fileName = util::filesystem::DirectoryUtil::getUserBaseDir().absolutePath() + "/bookmarks.xml"; } QDomDocument doc("DOC"); doc.appendChild( doc.createProcessingInstruction( "xml", "version=\"1.0\" encoding=\"UTF-8\"" ) ); QDomElement content = doc.createElement("SwordBookmarks"); content.setAttribute("syntaxVersion", CURRENT_SYNTAX_VERSION); doc.appendChild(content); //append the XML nodes of all child items for (int i = 0; i < rootItem->childCount(); i++) { saveItem(rootItem->child(i), content); } CToolClass::savePlainFile(fileName, doc.toString(), forceOverwrite, QTextCodec::codecForName("UTF-8")); }
void Configurator::saveSettings() { QListWidget* listWidget = qobject_cast<QListWidget*>( _sections->currentWidget() ); if( 0 != listWidget ) saveItem( listWidget->currentItem() ); // cheking if we can open file for writing QFile configurationFile( _configurationFileName ); if( false == configurationFile.open(QIODevice::WriteOnly) ) return; // saving content QTextStream textStream( &configurationFile ); _domDocument.save( textStream, 4 ); configurationFile.close(); emit configurationChanged(); accept(); }
void PromoBatchMaster::slotPrint() { if (!saveItem(true)) return; dataToWidget(); // Setup grid for printing Grid* grid = new Grid(6); Grid* header = new Grid(1, grid); TextFrame* text; text = new TextFrame(tr("Promotion Batch"), header); text->setJustify(ALIGN_CENTER); text->setFont(Font("Times", 24, 75)); header->set(USE_NEXT, 0, text); if (_curr.executedOn().isNull()) { text = new TextFrame(tr("Preliminary"), header); } else { QString dateText = DateValcon().format(_curr.executedOn()); text = new TextFrame(tr("Executed On: %1").arg(dateText), header); } text->setJustify(ALIGN_CENTER); text->setFont(Font("Times", 18)); header->set(USE_NEXT, 0, text); header->setColumnWeight(0, 1); grid->set(0, 0, 1, grid->columns(), header, Grid::AllSides); grid->set(USE_NEXT, 0, ""); for (int column = 0; column < 6; ++column) { grid->setColumnSticky(column, column < 3 ? Grid::Left : Grid::Right); grid->setColumnPad(column, 5); } grid->set(2, 0, tr("Item Number")); grid->set(3, 0, new LineFrame(grid), Grid::LeftRight); grid->set(2, 1, tr("Description")); grid->set(3, 1, new LineFrame(grid), Grid::LeftRight); grid->set(2, 2, tr("Size")); grid->set(3, 2, new LineFrame(grid), Grid::LeftRight); grid->set(2, 3, tr("Current Price")); grid->set(3, 3, new LineFrame(grid), Grid::LeftRight); grid->set(2, 4, tr("Promo Price")); grid->set(3, 4, new LineFrame(grid), Grid::LeftRight); grid->set(2, 5, tr("Ordered")); grid->set(3, 5, new LineFrame(grid), Grid::LeftRight); grid->setHeaderRows(grid->rows()); // Setup progress dialog QProgressDialog* progress = new QProgressDialog(tr("Printing promos..."), tr("Cancel"), _curr.items().size(), this, "Progress", true); progress->setMinimumDuration(1000); progress->setCaption(tr("Progress")); // Print promos for (unsigned int i = 0; i < _curr.items().size(); ++i) { progress->setProgress(i); qApp->processEvents(); if (progress->wasCancelled()) break; Id item_id = _curr.items()[i].item_id; if (item_id == INVALID_ID) continue; QString number = _curr.items()[i].number; QString size = _curr.items()[i].size; Price promoPrice = _curr.items()[i].price; fixed ordered = _curr.items()[i].ordered; Item item; findItem(item_id, item); Price currentPrice = item.price(_store->getId(), size); grid->set(USE_NEXT, 0, number); grid->set(USE_CURR, 1, item.description()); grid->set(USE_CURR, 2, size); grid->set(USE_CURR, 3, currentPrice.toString()); grid->set(USE_CURR, 4, promoPrice.toString()); grid->set(USE_CURR, 5, ordered.toString()); } bool cancelled = progress->wasCancelled(); progress->setProgress(_curr.items().size()); delete progress; if (!cancelled) grid->print(this); delete grid; }
void MaMainWindow::onShuttingDown() { saveItem(curItem()); }
tristate KexiWindow::switchToViewMode( Kexi::ViewMode newViewMode, QMap<QString, QVariant>* staticObjectArgs, bool& proposeOpeningInTextViewModeBecauseOfProblems) { KexiMainWindowIface::global()->acceptPropertySetEditing(); const bool designModePreloadedForTextModeHack = isDesignModePreloadedForTextModeHackUsed(newViewMode); tristate res = true; if (designModePreloadedForTextModeHack) { /* A HACK: open design BEFORE text mode: otherwise Query schema becames crazy */ bool _proposeOpeningInTextViewModeBecauseOfProblems = false; // used because even if opening the view failed, // text view can be opened res = switchToViewMode(Kexi::DesignViewMode, staticObjectArgs, _proposeOpeningInTextViewModeBecauseOfProblems); if ((!res && !_proposeOpeningInTextViewModeBecauseOfProblems) || ~res) return res; } kDebug(); bool dontStore = false; KexiView *view = selectedView(); if (d->currentViewMode == newViewMode) return true; if (!supportsViewMode(newViewMode)) { kWarning() << "!" << Kexi::nameForViewMode(newViewMode); return false; } if (view) { res = true; if (view->isDataEditingInProgress()) { KGuiItem saveItem(KStandardGuiItem::save()); saveItem.setText(i18n("Save Changes")); KGuiItem dontSaveItem(KStandardGuiItem::dontSave()); KGuiItem cancelItem(KStandardGuiItem::cancel()); cancelItem.setText(i18n("Do Not Switch")); const int res = KMessageBox::questionYesNoCancel( selectedView(), i18n("There are unsaved changes in object \"%1\". " "Do you want to save these changes before switching to other view?") .arg(partItem()->captionOrName()), i18n("Confirm Saving Changes"), saveItem, dontSaveItem, cancelItem ); if (res == KMessageBox::Yes) { if (true != view->saveDataChanges()) return cancelled; } else if (res == KMessageBox::No) { if (true != view->cancelDataChanges()) return cancelled; } else { // Cancel: return cancelled; } } if (!designModePreloadedForTextModeHack) { res = view->beforeSwitchTo(newViewMode, dontStore); } if (~res || !res) return res; if (!dontStore && view->isDirty()) { res = KexiMainWindowIface::global()->saveObject(this, i18n("Design has been changed. " "You must save it before switching to other view.")); if (~res || !res) return res; // KMessageBox::questionYesNo(0, i18n("Design has been changed. You must save it before switching to other view.")) // ==KMessageBox::No } } //get view for viewMode KexiView *newView = viewForMode(newViewMode); if (newView && !newView->inherits("KexiView")) { newView = 0; } if (!newView) { KexiUtils::setWaitCursor(); //ask the part to create view for the new mode d->creatingViewsMode = newViewMode; KexiPart::StaticPart *staticPart = dynamic_cast<KexiPart::StaticPart*>((KexiPart::Part*)d->part); if (staticPart) newView = staticPart->createView(this, this, *d->item, newViewMode, staticObjectArgs); else newView = d->part->createView(this, this, *d->item, newViewMode, staticObjectArgs); KexiUtils::removeWaitCursor(); if (!newView) { //js TODO error? kWarning() << "Switching to mode " << newViewMode << " failed. Previous mode " << d->currentViewMode << " restored."; return false; } d->creatingViewsMode = Kexi::NoViewMode; newView->initViewActions(); newView->initMainMenuActions(); addView(newView, newViewMode); } const Kexi::ViewMode prevViewMode = d->currentViewMode; res = true; if (designModePreloadedForTextModeHack) { d->currentViewMode = Kexi::NoViewMode; //SAFE? } res = newView->beforeSwitchTo(newViewMode, dontStore); proposeOpeningInTextViewModeBecauseOfProblems = data()->proposeOpeningInTextViewModeBecauseOfProblems; if (!res) { removeView(newViewMode); delete newView; kWarning() << "Switching to mode " << newViewMode << " failed. Previous mode " << d->currentViewMode << " restored."; return false; } d->currentViewMode = newViewMode; d->newlySelectedView = newView; if (prevViewMode == Kexi::NoViewMode) d->newlySelectedView->setDirty(false); res = newView->afterSwitchFrom( designModePreloadedForTextModeHack ? Kexi::NoViewMode : prevViewMode); proposeOpeningInTextViewModeBecauseOfProblems = data()->proposeOpeningInTextViewModeBecauseOfProblems; if (!res) { removeView(newViewMode); delete newView; kWarning() << "Switching to mode " << newViewMode << " failed. Previous mode " << prevViewMode << " restored."; const Kexi::ObjectStatus status(*this); setStatus(KexiMainWindowIface::global()->project()->dbConnection(), i18n("Switching to other view failed (%1).", Kexi::nameForViewMode(newViewMode)), ""); append(status); d->currentViewMode = prevViewMode; return false; } d->newlySelectedView = 0; if (~res) { d->currentViewMode = prevViewMode; return cancelled; } if (view) { takeActionProxyChild(view); //take current proxy child // views have distinct local toolbars, and user has switched the mode button so switch it back //view->toggleViewModeButtonBack(); } addActionProxyChild(newView); //new proxy child d->stack->setCurrentWidget(newView); newView->propertySetSwitched(); KexiMainWindowIface::global()->invalidateSharedActions(newView); newView->setFocus(); return true; }
void MangaW::itemList(void) { SubWin = new MangaSubW(0, CurrentItem->text(0), T.vlist(CurrentItem->text(0))); QWidget * WidWid = SubWin->widget(); connect(WidWid, SIGNAL(destroyed()), this, SLOT(saveItem())); }
void PromoBatchMaster::slotExecute() { Id store_id = _store->getId(); if (store_id == INVALID_ID) { qApp->beep(); QMessageBox::critical(this, tr("Error"), tr("A store is required")); _store->setFocus(); return; } QDate oldDate = _execDate->getDate(); if (!oldDate.isNull()) { qApp->beep(); QMessageBox::critical(this, tr("Error"), tr("Already executed")); return; } QString message = tr("Are you sure you want to execute this batch?"); int ch = QMessageBox::warning(this, tr("Continue?"), message, QMessageBox::No, QMessageBox::Yes); if (ch != QMessageBox::Yes) return; _execDate->setDate(QDate::currentDate()); QDate fromDate = _fromDate->getDate(); QDate toDate = _toDate->getDate(); QApplication::setOverrideCursor(waitCursor); qApp->processEvents(); // Create ItemPrice for (int row = 0; row < _items->rows(); ++row) { Id item_id = _items->cellValue(row, 0).toId(); if (item_id == INVALID_ID) continue; QString number = _items->cellValue(row, 0).toPlu().number(); QString size = _items->cellValue(row, 2).toString(); Price price = _items->cellValue(row, 4).toPrice(); Item item; findItem(item_id, item); ItemPrice info; info.setIsCost(false); info.setItemId(item_id); info.setNumber(number); info.setSize(size); info.setStoreId(store_id); info.setPromotion(true); info.setDiscountable(item.isDiscountable()); info.setStartDate(fromDate); info.setStopDate(toDate); info.setMethod(ItemPrice::PRICE); info.setPrice(price); _db->create(info); _items->row(row)->setValue(6, info.id()); } saveItem(false); dataToWidget(); QApplication::restoreOverrideCursor(); qApp->beep(); message = tr("Do you wish to print out the price\n" "changes that were done?"); ch = QMessageBox::information(this, tr("Print"), message, QMessageBox::No, QMessageBox::Yes); if (ch == QMessageBox::Yes) slotPrint(); message = tr("Do you wish to create labels for the\n" "changes that were done?"); ch = QMessageBox::information(this, tr("Labels"), message, QMessageBox::No, QMessageBox::Yes); if (ch == QMessageBox::Yes) slotLabels(); QMessageBox::information(this, tr("Complete"), tr("Promotion batch executed")); close(); }