20#include "kexiactionselectiondialog.h"
21#include "kexiactionselectiondialog_p.h"
23#include <keximainwindow.h>
24#include <kexipartitem.h>
25#include <kexiproject.h>
26#include <kexipartinfo.h>
28#include <kexiactioncategories.h>
30#include <tdelistview.h>
32#include <kiconloader.h>
34#include <kstdguiitem.h>
35#include <kpushbutton.h>
42#include <tqwidgetstack.h>
44#include <widget/utils/tdelistviewitemtemplate.h>
45#include <widget/kexibrowser.h>
46#include <widget/kexibrowseritem.h>
47#include <kexiutils/utils.h>
51class ActionSelectorDialogListItem :
public ActionSelectorDialogListItemBase
54 ActionSelectorDialogListItem(
const TQString& data, TQListView *parent, TQString label1)
55 : ActionSelectorDialogListItemBase(data, parent, label1)
58 m_sortKey.sprintf(
"%2.2d", parent->childCount());
61 ActionSelectorDialogListItem(
const TQString& data, TQListViewItem *parent, TQString label1)
62 : ActionSelectorDialogListItemBase(data, parent, label1)
65 m_sortKey.sprintf(
"%2.2d", parent->childCount());
68 virtual TQString key(
int column,
bool ascending )
const
70 return fifoSorting ? m_sortKey : ActionSelectorDialogListItemBase::key(column, ascending);
81ActionsListViewBase::ActionsListViewBase(TQWidget* parent)
84 setResizeMode(TQListView::AllColumns);
87 setColumnWidthMode(0, TQListView::Maximum);
88 setAllColumnsShowFocus(
true);
92ActionsListViewBase::~ActionsListViewBase()
96TQListViewItem *ActionsListViewBase::itemForAction(
const TQString& actionName)
98 for (TQListViewItemIterator it(
this); it.current(); ++it) {
99 ActionSelectorDialogListItem* item =
dynamic_cast<ActionSelectorDialogListItem*
>(it.current());
100 if (item && item->data == actionName)
106void ActionsListViewBase::selectAction(
const TQString& actionName)
108 TQListViewItem *item = itemForAction(actionName);
110 setSelected(item,
true);
111 ensureItemVisible(firstChild());
112 ensureItemVisible(selectedItem());
118TDEActionsListViewBase::TDEActionsListViewBase(TQWidget* parent,
KexiMainWindow* mainWin)
119 : ActionsListViewBase(parent)
124TDEActionsListViewBase::~TDEActionsListViewBase() {}
126void TDEActionsListViewBase::init()
130 TDEActionPtrList sharedActions( m_mainWin->allActions() );
132 foreach (TDEActionPtrList::ConstIterator, it, sharedActions) {
137 if (actionCategories==-1) {
138 kexipluginswarn <<
"TDEActionsListViewBase(): no category declared for action \""
139 << (*it)->name() <<
"\"! Fix this!" << endl;
142 if (!isActionVisible((*it)->name(), actionCategories))
144 ActionSelectorDialogListItem *pitem =
new ActionSelectorDialogListItem((*it)->name(),
145 this, (*it)->toolTip().isEmpty() ? (*it)->text().replace(
"&",
"") : (*it)->toolTip() );
146 pitem->fifoSorting =
false;
147 pitem->setPixmap( 0, (*it)->iconSet( TDEIcon::Small, 16 ).pixmap( TQIconSet::Small, TQIconSet::Active ) );
148 if (!pitem->pixmap(0) || pitem->pixmap(0)->isNull())
149 pitem->setPixmap( 0, noIcon );
156class TDEActionsListView :
public TDEActionsListViewBase
159 TDEActionsListView(TQWidget* parent, KexiMainWindow* mainWin)
160 : TDEActionsListViewBase(parent, mainWin)
163 virtual ~TDEActionsListView() {}
165 virtual bool isActionVisible(
const char* actionName,
int actionCategories)
const {
166 Q_UNUSED(actionName);
172class CurrentFormActionsListView :
public TDEActionsListViewBase
175 CurrentFormActionsListView(TQWidget* parent, KexiMainWindow* mainWin)
176 : TDEActionsListViewBase(parent, mainWin)
179 virtual ~CurrentFormActionsListView() {}
181 virtual bool isActionVisible(
const char* actionName,
int actionCategories)
const {
188class ActionCategoriesListView :
public ActionsListViewBase
191 ActionCategoriesListView(TQWidget* parent)
192 : ActionsListViewBase(parent)
194 TQListViewItem *item =
new ActionSelectorDialogListItem(
"noaction",
this, i18n(
"No action") );
196 item->setPixmap(0, noIcon);
197 item =
new ActionSelectorDialogListItem(
"tdeaction",
this, i18n(
"Application actions") );
198 item->setPixmap(0, SmallIcon(
"form_action"));
201 for (KexiPart::Info *info = pl->first(); info; info = pl->next()) {
203 if (!info->isVisibleInNavigator() || !part)
205 item =
new KexiBrowserItem(
this, info);
208 TQListViewItem *formItem = itemForAction(
"form");
210 item =
new ActionSelectorDialogListItem(
"currentForm", formItem,
211 i18n(
"Current form's actions",
"Current"));
214 setMinimumWidth( columnWidth(0) + 6 );
217 ~ActionCategoriesListView()
222 virtual TQListViewItem *itemForAction(
const TQString& actionName)
224 for (TQListViewItemIterator it(
this); it.current(); ++it) {
226 ActionSelectorDialogListItem* item =
dynamic_cast<ActionSelectorDialogListItem*
>(it.current());
228 if (item->data == actionName)
232 KexiBrowserItem* bitem =
dynamic_cast<KexiBrowserItem*
>(it.current());
243class ActionToExecuteListView :
public ActionsListViewBase
246 ActionToExecuteListView(TQWidget* parent)
247 : ActionsListViewBase(parent)
251 ~ActionToExecuteListView()
256 void showActionsForMimeType(
const TQString& mimeType) {
257 if (m_currentMimeType == mimeType)
259 m_currentMimeType = mimeType;
265 ActionSelectorDialogListItem *item;
267 if (supportedViewModes & Kexi::DataViewMode) {
268 item =
new ActionSelectorDialogListItem(
"open",
this, i18n(
"Open in Data View"));
269 item->setPixmap(0, SmallIcon(
"document-open"));
272 item =
new ActionSelectorDialogListItem(
"execute",
this, i18n(
"Execute"));
273 item->setPixmap(0, SmallIcon(
"media-playback-start"));
276 ActionSelectorDialogListItem *printItem =
new ActionSelectorDialogListItem(
277 "print",
this, i18n(
"Print"));
278 printItem->setPixmap(0, SmallIcon(
"document-print"));
279 TDEAction *a = KStdAction::printPreview(0, 0, 0);
280 item =
new ActionSelectorDialogListItem(
"printPreview", printItem,
281 a->text().replace(
"&",
"").replace(
"...",
""));
282 item->setPixmap(0, SmallIcon(a->icon()));
284 item =
new ActionSelectorDialogListItem(
"pageSetup", printItem, i18n(
"Show Page Setup"));
285 item->setPixmap(0, noIcon);
286 setOpen(printItem,
true);
287 printItem->setExpandable(
false);
290 ActionSelectorDialogListItem *exportItem =
new ActionSelectorDialogListItem(
292 i18n(
"Note: use multiple rows if needed",
"Export to File\nAs Data Table"));
293 exportItem->setMultiLinesEnabled(
true);
294 exportItem->setPixmap(0, SmallIcon(
"table"));
295 item =
new ActionSelectorDialogListItem(
"copyToClipboardAsCSV",
297 i18n(
"Note: use multiple rows if needed",
"Copy to Clipboard\nAs Data Table"));
298 item->setPixmap(0, SmallIcon(
"table"));
299 item->setMultiLinesEnabled(
true);
300 setOpen(exportItem,
true);
301 exportItem->setExpandable(
false);
303 item =
new ActionSelectorDialogListItem(
"new",
this, i18n(
"Create New Object"));
304 item->setPixmap(0, SmallIcon(
"document-new"));
305 if (supportedViewModes & Kexi::DesignViewMode) {
306 item =
new ActionSelectorDialogListItem(
"design",
this, i18n(
"Open in Design View"));
307 item->setPixmap(0, SmallIcon(
"edit"));
310 item =
new ActionSelectorDialogListItem(
"editText",
this, i18n(
"Open in Text View"));
311 item->setPixmap(0, noIcon);
313 item =
new ActionSelectorDialogListItem(
"close",
this, i18n(
"Close View"));
314 item->setPixmap(0, SmallIcon(
"window-close"));
321 setMinimumWidth( columnWidth(0) );
324 TQString m_currentMimeType;
330class KexiActionSelectionDialog::KexiActionSelectionDialogPrivate
333 KexiActionSelectionDialogPrivate()
334 : tdeactionPageWidget(0), tdeactionListView(0), objectsListView(0)
335 , currentFormActionsPageWidget(0)
336 , currentFormActionsListView(0)
337 , secondAnd3rdColumnMainWidget(0)
338 , hideActionToExecuteListView(false)
342 void raiseWidget(TQWidget *w)
344 secondAnd3rdColumnStack->raiseWidget( w );
345 selectActionToBeExecutedLbl->setBuddy(w);
348 void updateSelectActionToBeExecutedMessage(
const TQString& actionType)
351 if (actionType==
"noaction")
354 else if (actionType==
"macro")
355 msg = i18n(
"&Select macro to be executed after clicking \"%1\" button:").arg(actionWidgetName);
356 else if (actionType==
"script")
357 msg = i18n(
"&Select script to be executed after clicking \"%1\" button:").arg(actionWidgetName);
360 msg = i18n(
"&Select object to be opened after clicking \"%1\" button:").arg(actionWidgetName);
361 selectActionToBeExecutedLbl->setText(msg);
365 void setActionToExecuteSectionVisible(
bool visible,
bool force =
false)
367 if (!force && hideActionToExecuteListView != visible)
369 hideActionToExecuteListView = !visible;
370 actionToExecuteListView->hide();
371 actionToExecuteLbl->hide();
372 actionToExecuteListView->show();
373 actionToExecuteLbl->show();
376 KexiMainWindow* mainWin;
377 TQString actionWidgetName;
378 ActionCategoriesListView* actionCategoriesListView;
379 TQWidget *tdeactionPageWidget;
380 TDEActionsListView* tdeactionListView;
381 KexiBrowser* objectsListView;
382 TQWidget *currentFormActionsPageWidget;
383 CurrentFormActionsListView* currentFormActionsListView;
384 TQWidget *emptyWidget;
385 TQLabel* selectActionToBeExecutedLbl;
386 ActionToExecuteListView* actionToExecuteListView;
387 TQLabel *actionToExecuteLbl;
388 TQWidget *secondAnd3rdColumnMainWidget;
390 TQGridLayout *secondAnd3rdColumnGrLyr;
391 TQWidgetStack *secondAnd3rdColumnStack, *secondColumnStack;
392 bool hideActionToExecuteListView;
397KexiActionSelectionDialog::KexiActionSelectionDialog(
KexiMainWindow* mainWin, TQWidget *parent,
399 : KDialogBase(parent,
"actionSelectorDialog", true, i18n(
"Assigning Action to Command Button"),
400 KDialogBase::Ok | KDialogBase::Cancel )
401 , d( new KexiActionSelectionDialogPrivate() )
403 d->mainWin = mainWin;
404 d->actionWidgetName = actionWidgetName;
405 setButtonOK( KGuiItem(i18n(
"Assign action",
"&Assign"),
"button_ok", i18n(
"Assign action")) );
407 TQWidget *mainWidget =
new TQWidget(
this );
408 mainWidget->setSizePolicy(TQSizePolicy::Minimum, TQSizePolicy::Minimum);
409 setMainWidget(mainWidget);
426 d->glyr =
new TQGridLayout(mainWidget, 2, 2, KDialog::marginHint(), KDialog::spacingHint());
427 d->glyr->setRowStretch(1, 1);
430 d->actionCategoriesListView =
new ActionCategoriesListView(mainWidget);
431 d->actionCategoriesListView->setSizePolicy(TQSizePolicy::Fixed, TQSizePolicy::Minimum);
432 d->glyr->addWidget(d->actionCategoriesListView, 1, 0);
433 connect( d->actionCategoriesListView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
434 this, TQ_SLOT(slotActionCategorySelected(TQListViewItem*)));
436 TQLabel *lbl =
new TQLabel(d->actionCategoriesListView, i18n(
"Action category:"), mainWidget);
437 lbl->setMinimumHeight(lbl->fontMetrics().height()*2);
438 lbl->setSizePolicy(TQSizePolicy::Fixed, TQSizePolicy::Fixed);
439 lbl->setAlignment(TQt::AlignTop|TQt::AlignLeft|TQt::WordBreak);
440 d->glyr->addWidget(lbl, 0, 0, TQt::AlignTop|TQt::AlignLeft);
443 d->secondAnd3rdColumnStack =
new TQWidgetStack(mainWidget);
444 d->secondAnd3rdColumnStack->setSizePolicy(TQSizePolicy::Minimum, TQSizePolicy::Minimum);
445 d->glyr->addMultiCellWidget(d->secondAnd3rdColumnStack, 0, 1, 1, 1);
447 d->secondAnd3rdColumnMainWidget =
new TQWidget(d->secondAnd3rdColumnStack);
448 d->secondAnd3rdColumnMainWidget->setSizePolicy(TQSizePolicy::Minimum, TQSizePolicy::Minimum);
449 d->secondAnd3rdColumnGrLyr =
new TQGridLayout(d->secondAnd3rdColumnMainWidget, 2, 2, 0, KDialog::spacingHint());
450 d->secondAnd3rdColumnGrLyr->setRowStretch(1, 2);
451 d->secondAnd3rdColumnStack->addWidget(d->secondAnd3rdColumnMainWidget);
454 d->objectsListView =
new KexiBrowser(d->secondAnd3rdColumnMainWidget, d->mainWin, 0);
455 d->secondAnd3rdColumnGrLyr->addWidget(d->objectsListView, 1, 0);
456 connect(d->objectsListView, TQ_SIGNAL(selectionChanged(
KexiPart::Item*)),
457 this, TQ_SLOT(slotItemForOpeningOrExecutingSelected(
KexiPart::Item*)));
459 d->selectActionToBeExecutedLbl =
new TQLabel(d->secondAnd3rdColumnMainWidget);
460 d->selectActionToBeExecutedLbl->setSizePolicy(TQSizePolicy::Minimum, TQSizePolicy::Fixed);
461 d->selectActionToBeExecutedLbl->setAlignment(TQt::AlignTop|TQt::AlignLeft|TQt::WordBreak);
462 d->selectActionToBeExecutedLbl->setMinimumHeight(d->selectActionToBeExecutedLbl->fontMetrics().height()*2);
463 d->secondAnd3rdColumnGrLyr->addWidget(d->selectActionToBeExecutedLbl, 0, 0, TQt::AlignTop|TQt::AlignLeft);
465 d->emptyWidget =
new TQWidget(d->secondAnd3rdColumnStack);
466 d->secondAnd3rdColumnStack->addWidget(d->emptyWidget);
469 d->actionToExecuteListView =
new ActionToExecuteListView(d->secondAnd3rdColumnMainWidget);
470 d->actionToExecuteListView->installEventFilter(
this);
471 d->actionToExecuteListView->viewport()->installEventFilter(
this);
472 d->actionToExecuteListView->setSizePolicy(TQSizePolicy::Fixed, TQSizePolicy::Minimum);
473 connect(d->actionToExecuteListView, TQ_SIGNAL(executed(TQListViewItem*)),
474 this, TQ_SLOT(slotActionToExecuteItemExecuted(TQListViewItem*)));
475 connect(d->actionToExecuteListView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
476 this, TQ_SLOT(slotActionToExecuteItemSelected(TQListViewItem*)));
477 d->secondAnd3rdColumnGrLyr->addWidget(d->actionToExecuteListView, 1, 1);
479 d->actionToExecuteLbl =
new TQLabel(d->actionToExecuteListView,
480 i18n(
"Action to execute:"), d->secondAnd3rdColumnMainWidget);
481 d->actionToExecuteLbl->installEventFilter(
this);
482 d->actionToExecuteLbl->setSizePolicy(TQSizePolicy::Minimum, TQSizePolicy::Fixed);
483 d->actionToExecuteLbl->setAlignment(TQt::AlignTop|TQt::AlignLeft|TQt::WordBreak);
484 d->secondAnd3rdColumnGrLyr->addWidget(d->actionToExecuteLbl, 0, 1, TQt::AlignTop|TQt::AlignLeft);
487 d->actionCategoriesListView->selectAction(
"table");
488 d->setActionToExecuteSectionVisible(
true);
490 resize(TQMAX(700, width()), TQMAX(450, height()));
491 d->actionToExecuteListView->updateWidth();
494 TQString actionType, actionArg;
497 d->actionCategoriesListView->selectAction(actionType);
498 if (actionType==
"tdeaction") {
499 d->tdeactionListView->selectAction(actionArg);
500 d->tdeactionListView->setFocus();
502 else if (actionType==
"currentForm") {
503 d->currentFormActionsListView->selectAction(actionArg);
504 d->currentFormActionsListView->setFocus();
511 KexiPart::Item *item = d->mainWin->project()->item(partInfo, actionArg);
512 if (d->objectsListView && item) {
513 d->objectsListView->selectItem(*item);
514 TQString actionOption( action.
option );
515 if (actionOption.isEmpty())
516 actionOption =
"open";
517 d->actionToExecuteListView->selectAction(actionOption);
518 d->objectsListView->setFocus();
523 d->actionCategoriesListView->selectAction(
"noaction");
524 d->actionCategoriesListView->setFocus();
528KexiActionSelectionDialog::~KexiActionSelectionDialog()
533void KexiActionSelectionDialog::slotTDEActionItemExecuted(TQListViewItem*)
538void KexiActionSelectionDialog::slotTDEActionItemSelected(TQListViewItem*)
540 d->setActionToExecuteSectionVisible(
false);
541 updateOKButtonStatus();
544void KexiActionSelectionDialog::slotCurrentFormActionItemExecuted(TQListViewItem*)
549void KexiActionSelectionDialog::slotCurrentFormActionItemSelected(TQListViewItem*)
551 d->setActionToExecuteSectionVisible(
false);
552 updateOKButtonStatus();
555void KexiActionSelectionDialog::slotItemForOpeningOrExecutingSelected(
KexiPart::Item* item)
557 d->setActionToExecuteSectionVisible(item);
560void KexiActionSelectionDialog::slotActionToExecuteItemExecuted(TQListViewItem* item)
564 ActionSelectorDialogListItemBase *listItem =
dynamic_cast<ActionSelectorDialogListItemBase*
>(item);
565 if (listItem && !listItem->data.isEmpty())
569void KexiActionSelectionDialog::slotActionToExecuteItemSelected(TQListViewItem*)
571 updateOKButtonStatus();
574void KexiActionSelectionDialog::slotActionCategorySelected(TQListViewItem* item)
576 ActionSelectorDialogListItem *simpleItem =
dynamic_cast<ActionSelectorDialogListItem*
>(item);
579 d->updateSelectActionToBeExecutedMessage(simpleItem->data);
580 TQString selectActionToBeExecutedMsg(
581 i18n(
"&Select action to be executed after clicking \"%1\" button:"));
582 if (simpleItem->data ==
"tdeaction") {
583 if (!d->tdeactionPageWidget) {
585 d->tdeactionPageWidget =
new TQWidget();
586 d->tdeactionPageWidget->setSizePolicy(TQSizePolicy::Minimum, TQSizePolicy::Minimum);
587 TQVBoxLayout *vlyr =
new TQVBoxLayout(d->tdeactionPageWidget, 0, KDialog::spacingHint());
588 d->tdeactionListView =
new TDEActionsListView(d->tdeactionPageWidget, d->mainWin);
589 d->tdeactionListView->init();
590 TQLabel *lbl =
new TQLabel(d->tdeactionListView, selectActionToBeExecutedMsg.arg(d->actionWidgetName),
591 d->tdeactionPageWidget);
592 lbl->setAlignment(TQt::AlignTop|TQt::AlignLeft|TQt::WordBreak);
593 lbl->setMinimumHeight(lbl->fontMetrics().height()*2);
594 vlyr->addWidget(lbl);
595 vlyr->addWidget(d->tdeactionListView);
596 d->secondAnd3rdColumnStack->addWidget(d->tdeactionPageWidget);
597 connect(d->tdeactionListView, TQ_SIGNAL(executed(TQListViewItem*)),
598 this, TQ_SLOT(slotTDEActionItemExecuted(TQListViewItem*)));
599 connect( d->tdeactionListView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
600 this, TQ_SLOT(slotTDEActionItemSelected(TQListViewItem*)));
602 d->setActionToExecuteSectionVisible(
false);
603 d->raiseWidget(d->tdeactionPageWidget);
604 slotTDEActionItemSelected(d->tdeactionListView->selectedItem());
606 else if (simpleItem->data ==
"currentForm") {
607 if (!d->currentFormActionsPageWidget) {
609 d->currentFormActionsPageWidget =
new TQWidget();
610 d->currentFormActionsPageWidget->setSizePolicy(TQSizePolicy::Minimum, TQSizePolicy::Minimum);
611 TQVBoxLayout *vlyr =
new TQVBoxLayout(d->currentFormActionsPageWidget, 0, KDialog::spacingHint());
612 d->currentFormActionsListView =
new CurrentFormActionsListView(
613 d->currentFormActionsPageWidget, d->mainWin);
614 d->currentFormActionsListView->init();
615 TQLabel *lbl =
new TQLabel(d->currentFormActionsListView,
616 selectActionToBeExecutedMsg.arg(d->actionWidgetName), d->currentFormActionsPageWidget);
617 lbl->setAlignment(TQt::AlignTop|TQt::AlignLeft|TQt::WordBreak);
618 lbl->setMinimumHeight(lbl->fontMetrics().height()*2);
619 vlyr->addWidget(lbl);
620 vlyr->addWidget(d->currentFormActionsListView);
621 d->secondAnd3rdColumnStack->addWidget(d->currentFormActionsPageWidget);
622 connect(d->currentFormActionsListView, TQ_SIGNAL(executed(TQListViewItem*)),
623 this, TQ_SLOT(slotCurrentFormActionItemExecuted(TQListViewItem*)));
624 connect( d->currentFormActionsListView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
625 this, TQ_SLOT(slotCurrentFormActionItemSelected(TQListViewItem*)));
627 d->setActionToExecuteSectionVisible(
false);
628 d->raiseWidget(d->currentFormActionsPageWidget);
629 slotCurrentFormActionItemSelected(d->currentFormActionsListView->selectedItem());
631 else if (simpleItem->data ==
"noaction") {
632 d->raiseWidget(d->emptyWidget);
633 d->objectsListView->clearSelection();
635 d->setActionToExecuteSectionVisible(
false);
637 d->actionCategoriesListView->update();
638 updateOKButtonStatus();
642 KexiBrowserItem* browserItem =
dynamic_cast<KexiBrowserItem*
>(item);
644 d->updateSelectActionToBeExecutedMessage(browserItem->
info()->
objectName());
645 if (d->objectsListView->itemsMimeType().latin1()!=browserItem->
info()->
mimeType()) {
646 d->objectsListView->setProject(d->mainWin->project(), browserItem->
info()->
mimeType());
647 d->actionToExecuteListView->showActionsForMimeType( browserItem->
info()->
mimeType() );
648 d->setActionToExecuteSectionVisible(
false);
650 if (d->secondAnd3rdColumnStack->visibleWidget()!=d->secondAnd3rdColumnMainWidget) {
651 d->raiseWidget( d->secondAnd3rdColumnMainWidget );
652 d->objectsListView->clearSelection();
653 d->setActionToExecuteSectionVisible(
false,
true);
656 d->raiseWidget( d->secondAnd3rdColumnMainWidget );
658 d->actionCategoriesListView->update();
659 updateOKButtonStatus();
670 ActionSelectorDialogListItem *simpleItem =
dynamic_cast<ActionSelectorDialogListItem*
>(
671 d->actionCategoriesListView->selectedItem());
674 if (simpleItem->data ==
"tdeaction") {
675 if (d->tdeactionListView->selectedItem()) {
676 data.
string = TQString(
"tdeaction:")
677 +
dynamic_cast<ActionSelectorDialogListItem*
>( d->tdeactionListView->selectedItem() )->data;
681 else if (simpleItem->data ==
"currentForm") {
682 if (d->currentFormActionsListView->selectedItem()) {
683 data.
string = TQString(
"currentForm:")
684 +
dynamic_cast<ActionSelectorDialogListItem*
>(
685 d->currentFormActionsListView->selectedItem() )->data;
692 ActionSelectorDialogListItem *actionToExecute =
dynamic_cast<ActionSelectorDialogListItem*
>(
693 d->actionToExecuteListView->selectedItem());
694 if (d->objectsListView && actionToExecute && !actionToExecute->data.isEmpty()) {
695 KexiPart::Item* partItem = d->objectsListView->selectedPartItem();
699 data.
string = TQString(
"%1:%2").arg(partInfo->
objectName()).arg(partItem->name());
700 data.
option = actionToExecute->data;
708void KexiActionSelectionDialog::updateOKButtonStatus()
710 TQPushButton *btn = actionButton(Ok);
711 ActionSelectorDialogListItem *simpleItem =
dynamic_cast<ActionSelectorDialogListItem*
>(
712 d->actionCategoriesListView->selectedItem());
713 btn->setEnabled( (simpleItem && simpleItem->data ==
"noaction") || !
currentAction().isEmpty() );
716bool KexiActionSelectionDialog::eventFilter(TQObject *o, TQEvent *e)
718 if (d->hideActionToExecuteListView)
720 return KDialogBase::eventFilter(o, e);
723#include "kexiactionselectiondialog.moc"
724#include "kexiactionselectiondialog_p.moc"
KexiMainWindow * mainWin() const
KexiFormEventAction::ActionData currentAction() const
List view item for the navigator widget (KexiBrowser) Used for creating group items as well as object...
KexiPart::Info * info() const
The Main Kexi navigator widget.
Kexi's main window interface This interface is implemented by KexiMainWindowImpl class.
Information about a Kexi Part (plugin).
bool isDataExportSupported() const
TQCString mimeType() const
bool isPrintingSupported() const
TQString objectName() const
bool isExecuteSupported() const
Information about a single object that can be instantiated using Kexi Part.
Part * partForMimeType(const TQString &mimeTypt)
Info * infoForMimeType(const TQString &mimeType)
PartInfoList * partInfoList()
int supportedViewModes() const
TQString instanceCaption() const
bool actionSupportsObjectType(const char *name, KexiPart::ObjectTypes objectType) const
int actionCategories(const char *name) const
TQListViewItem class with ability for storing additional data member.
KEXIUTILS_EXPORT TQPixmap emptyIcon(TDEIcon::Group iconGroup)
KEXICORE_EXPORT ActionCategories * actionCategories()
KEXICORE_EXPORT KexiPart::Manager & partManager()
shared part manager
@ TextViewMode
Also known as SQL View Mode.