void InventoryWindow::DeleteItem() { /// @todo Delete for multiple items. Currenly causes crash in InventoryItemModel::parent() /* const QItemSelection &selection = treeView_->selectionModel()->selection(); if (selection.isEmpty()) return; QListIterator<QModelIndex> it(selection.indexes()); while(it.hasNext()) { QModelIndex index = it.next(); if (treeView_->model()->removeRow(index.row(), index.parent())) UpdateActions(); } */ QModelIndex index = treeView_->selectionModel()->currentIndex(); if (!index.isValid()) return; if (treeView_->model()->removeRow(index.row(), index.parent())) UpdateActions(); inventoryItemModel_->CheckTreeForDirtys(); }
//--------------------------------------------------------------------------- void __fastcall TLogForm::LogMemoChange(TObject * /*Sender*/) { assert(LogMemo); Application->ProcessMessages(); if (!ComponentState.Contains(csDestroying)) { UpdateActions(); } }
void Behaviour::Update(float elapsedTime) { if (!isActive) { return; } OnUpdate(elapsedTime); UpdateActions(elapsedTime); }
//----------------------------------------------------------------------------- //! //----------------------------------------------------------------------------- void tWindPlotPanel::UpdateActionList() { UpdateActions(); m_ActionList.clear(); m_ActionList << m_pSelectTimeRangeAct << m_pDatasourcesAct; if( Selected() ) { emit QuickActionChanged( 0 ); emit ActionsChanged( m_ActionList ); } }
//----------------------------------------------------------------------------- //! Enters edit mode, and transfers focus to the tInfoPageWidget. //----------------------------------------------------------------------------- void tSuzukiRepowerEnginePanel::mouseDoubleClickEvent( QMouseEvent* pEvent ) { if( pEvent->button() == Qt::LeftButton && m_pPageWidget ) { EnterEditMode(); m_pPageWidget->SelectGauge( m_pPageWidget->GaugeClosestToMousePoint( pEvent->pos() ) ); UpdateActions(); } else { tPanel::mouseDoubleClickEvent( pEvent ); } }
void InventoryWindow::OpenItem() { QModelIndex index = treeView_->selectionModel()->currentIndex(); if (AbstractInventoryItem::Type_Folder == inventoryItemModel_->GetItemType(index)) { if (!treeView_->isExpanded(index)) inventoryItemModel_->Open(index); } else inventoryItemModel_->Open(index); treeView_->selectionModel()->setCurrentIndex(index, QItemSelectionModel::ClearAndSelect); UpdateActions(); }
//----------------------------------------------------------------------------- //! //----------------------------------------------------------------------------- tSuzukiRepowerEnginePanel::tSuzukiRepowerEnginePanel( int instance, QWidget* pParent ) : tPanel( pParent ) , m_pPageWidget( 0 ) , m_pMainLayout( 0 ) , m_pSpacerAct( 0 ) , m_pEditAct( 0 ) , m_pSaveAct( 0 ) , m_pCancelAct( 0 ) , m_pChangeGaugeRangeAct( 0 ) , m_pSelectDataAct( 0 ) , m_pSourceMenuAct( 0 ) , m_pAddSourceAct( 0 ) , m_pRemoveSourceAct( 0 ) , m_pAutoAct( 0 ) { // Used by the panel manager to know which panel is specified to open setObjectName( "suzukiRepowerEnginePanel" + QString( "%1").arg( instance ) ); m_pPageWidget = new tSuzukiRepowerEnginePanelWidget( m_PanelSettings, this ); Connect( tSystemSettings::Instance(), SIGNAL( NightModeChanged( bool, bool ) ), m_pPageWidget, SLOT( OnNightModeChanged( bool ) ) ); tDigitalDataSourceSelection* pSourceSelection = tDigitalDataManager::Instance()->GetSourceSelection(); Connect( pSourceSelection, SIGNAL( NumInstancesChanged( int ) ), m_pPageWidget, SLOT( OnGlobalDataSourceNumInstancesChanged( int ) ) ); m_pPageWidget->OnNightModeChanged( tSystemSettings::Instance()->NightMode() ); m_pMainLayout = new QGridLayout( this ); m_pMainLayout->setMargin( 0 ); m_pMainLayout->addWidget( m_pPageWidget ); Connect( m_pPageWidget, SIGNAL( UpdateActions() ), this, SLOT( UpdateActions() ) ); setLayout( m_pMainLayout ); m_pInfoBox = new tPanelInfoBox( Qt::AlignTop | Qt::AlignRight, this ); m_pInfoBox->SetStaticText( tr( "Editing" ) ); m_pInfoBox->hide(); CreateActions(); }
void InventoryWindow::AddFolder() { QModelIndex index = treeView_->selectionModel()->currentIndex(); QAbstractItemModel *model = treeView_->model(); inventoryItemModel_->Open(index); if (!inventoryItemModel_->InsertFolder(index.row(), index, "New Folder")) return; treeView_->selectionModel()->setCurrentIndex(model->index(0, 0, index), QItemSelectionModel::ClearAndSelect); UpdateActions(); RenameItem(); inventoryItemModel_->CheckTreeForDirtys(); }
//----------------------------------------------------------------------------- void tSuzukiRepowerEnginePanel::UpdateActionList() { if ( m_pPageWidget ) { m_ActionList.clear(); if ( true == m_pPageWidget->InEditMode() ) { m_ActionList << m_pSelectDataAct << m_pSourceMenuAct << m_pChangeGaugeRangeAct; // Put Save and Cancel at the bottom of the side bar. m_ActionList << m_pSpacerAct << m_pSpacerAct << m_pSpacerAct; m_ActionList << m_pSaveAct << m_pCancelAct; } else { m_ActionList << m_pEditAct; } UpdateActions(); emit ActionsChanged( m_ActionList ); emit QuickActionChanged( 0 ); } }
void InventoryWindow::ExpandFolder(const QModelIndex &index) { inventoryItemModel_->Open(index); UpdateActions(); }
//----------------------------------------------------------------------------- //! //----------------------------------------------------------------------------- tSteerPanel::tSteerPanel( int id, tSteerPanelWidgetBase& steerPanelWidget, const tMfdUiFactory& mfdUiFactory, tVesselsSettings& vesselSettings, tNavigationDataEngine& navigationDataEngine, QWidget* parent ) : tPanel(parent) , m_pPanelWidget ( &steerPanelWidget ) , m_pSetRouteAct ( 0 ) , m_pSetWptAct ( 0 ) , m_pSkipNavigationAct ( 0 ) , m_pCancelNavAct ( 0 ) , m_pXTEResetAct ( 0 ) , m_pNewWaypointAct ( 0 ) , m_pBlankSpaceAct ( 0 ) , m_mfdUiFactory ( mfdUiFactory ) , m_VesselsSettings( vesselSettings ) , m_pNavigationDataEngine( &navigationDataEngine ) , m_helpTimerID( 0 ) , m_PanelIsSmall( false ) { steerPanelWidget.setParent(this); //Reparent under this widget // Used by the panel manager to know which panel is specified to open QString str = QString("steerPanel%1").arg(id); setObjectName( str ); QGridLayout* pMainLayout = new QGridLayout( this ); pMainLayout->setContentsMargins( 0, 0, 0, 0 ); pMainLayout->setSpacing( 0 ); setLayout( pMainLayout ); //Add the widget to the layout pMainLayout->addWidget(m_pPanelWidget); CreateActions(); setMinimumSize( 100, 135 ); if( tProductSettings::Instance().UsbMouseWheelInversionAllowed() == true ) { // See tApplication::WheelEventFilter() for an explanation! setProperty( "InvertUsbMouseWheel", true ); } UpdateActions(); //Create the zoom buttons if ( tUiConfig::Instance()->HasZoomButton() ) { CreateZoomPanelButtons(); m_pZoomButton->setObjectName("ZoomButton"); m_pZoomButton->SetOverlayOnGL( true ); if( m_pPanelWidget != 0 ) { Connect( m_pZoomButton, SIGNAL( ZoomInClicked() ), m_pPanelWidget, SLOT( StartZoomIn() ) ); Connect( m_pZoomButton, SIGNAL( ZoomOutClicked() ), m_pPanelWidget, SLOT( StartZoomOut() ) ); Connect( m_pZoomButton, SIGNAL( ZoomButtonReleased() ), m_pPanelWidget, SLOT( StopZoom() ) ); } } }
void PeepsWindow::MessageReceived(BMessage *msg) { switch(msg->what) { case B_ABOUT_REQUESTED: { be_app->PostMessage(msg); break; } case M_RUN_TOOL: { BString sig; if(msg->FindString("signature",&sig)==B_OK) { if(strcmp(sig.String(),"application/x-vnd.wgp-PeopleMover")==0) { be_roster->Launch(sig.String()); break; } // Get the filename for the currently-selected person int32 selection=fPeopleList->CurrentSelection(); if(selection<0) break; PeepsListItem *peepsitem=(PeepsListItem*)fPeopleList->ItemAt(selection); if(!peepsitem || peepsitem->IsGroup()) break; PersonItem *personitem=(PersonItem*)peepsitem; PersonData *persondata=personitem->GetData(); if(!persondata) break; entry_ref ref=persondata->FileRef(); BPath path(&ref); char *launchv[1]; launchv[0]=new char[255]; sprintf(launchv[0],"%s",path.Path()); be_roster->Launch(sig.String(),1,launchv,NULL); delete [] launchv[0]; } break; } case M_SHOW_ACTIONS: { uint32 buttons; BPoint pt; fPeopleList->GetMouse(&pt,&buttons,false); pt.x=(pt.x>5)?pt.x-5:0; pt.y=(pt.y>5)?pt.y-5:0; fPeopleList->ShowContextMenu(fPeopleList->ConvertToScreen(pt)); break; } case M_BITMAP_REMOVED: case M_PHOTO_MODIFIED: { fPeopleList->SaveImageData(); break; } case B_REFS_RECEIVED: case B_SIMPLE_DATA: { entry_ref ref; if(msg->FindRef("refs",0,&ref)==B_OK) { if(!IsPerson(ref)) { // Might be an image dropped on the photo view. find out which child is the // target BPoint pt; if(msg->FindPoint("_drop_offset",&pt)!=B_OK) break; BView *target=FindView(pt); if(!target || strcmp(target->Name(),"photoview")!=0) break; // This will set the image, if possible target->MessageReceived(msg); // Save the image data to a real file and attach the Person attributes // to it fPeopleList->SaveImageData(); } // Offer to move/copy file if not in People directory BDirectory dir,peopledir("/boot/home/people"); BEntry entry(&ref); entry.GetParent(&dir); if(dir!=peopledir) { BString refname(ref.name); BString errstr=TRANSLATE("%s is not currently stored in the People folder. Mr. Peeps! will not" " see it on startup unless it is stored there. Would you like to move it" " there?"); char errmsg[errstr.CountChars() - 2 + refname.CountChars() + 1]; sprintf(errmsg,errstr.String(),refname.String()); BAlert *alert=new BAlert("Mr. Peeps!",errmsg,TRANSLATE("Move"),TRANSLATE("Don't Move")); if(alert->Go()==0) { entry.MoveTo(&peopledir); entry.GetRef(&ref); } } if(!SelectPerson(ref)) AddPerson(ref,true); } break; } case M_PREV_ITEM: { if(fPeopleList->CountItems()==0) break; int32 selection=fPeopleList->CurrentSelection(); if(!fPeopleList->IsFocus()) { fPeopleList->MakeFocus(true); PeepsListItem *pitem=(PeepsListItem*)fPeopleList->ItemAt(selection); if(!pitem->IsGroup()) { fPeopleList->SyncData((PersonItem*)pitem); // fPeopleList->SaveData(); } fPeopleList->SaveData(); } if(selection>=0) { if(selection>0) fPeopleList->Select(selection-1); } else { fPeopleList->Select(0L); } break; } case M_NEXT_ITEM: { if(fPeopleList->CountItems()==0) break; int32 selection=fPeopleList->CurrentSelection(); if(!fPeopleList->IsFocus()) { fPeopleList->MakeFocus(true); PeepsListItem *pitem=(PeepsListItem*)fPeopleList->ItemAt(selection); if(!pitem->IsGroup()) { fPeopleList->SyncData((PersonItem*)pitem); // fPeopleList->SaveData(); } fPeopleList->SaveData(); } if(selection==fPeopleList->CountItems()-1 || selection<0) fPeopleList->Select(fPeopleList->CountItems()-1); else fPeopleList->Select(selection+1); break; } case M_MOD_DATA: case M_SAVE: { fPeopleList->SyncData(NULL); fPeopleList->SaveData(); break; } case M_ADD_PERSON: { entry_ref ref; status_t stat=CreatePerson(&ref); if(stat==B_FILE_EXISTS) { for(int32 i=0;i<gPeopleData.CountItems(); i++) { PersonData *pdata=(PersonData*)gPeopleData.ItemAt(i); if(BString(TRANSLATE("New Person")).ICompare(pdata->Name())==0) { int32 selection=fPeopleList->CurrentSelection(); if(selection>=0) { PeepsListItem *peepsitem=(PeepsListItem*)fPeopleList->ItemAt(selection); if(peepsitem && !peepsitem->IsGroup()) fPeopleList->Collapse(fPeopleList->Superitem(peepsitem)); } PersonItem *pitem=pdata->InstanceAt(0); GroupItem *gitem=(GroupItem*)fPeopleList->Superitem(pitem); if(!gitem->IsExpanded()) fPeopleList->Expand(gitem); fPeopleList->Select(fPeopleList->IndexOf(pitem)); fPeopleList->ScrollToSelection(); break; } } } else { // Add the current group to the New Person's file so that we end up staying // in the current group. if(stat==B_OK) { int32 selection=fPeopleList->CurrentSelection(); BString groupstr(TRANSLATE("Ungrouped")); if(selection>=0) { PeepsListItem *currentitem=(PeepsListItem*)fPeopleList->ItemAt(selection); if(currentitem->IsGroup()) groupstr=currentitem->Name(); else groupstr=((PersonItem*)currentitem)->Group(); } PersonData *pdata=new PersonData(ref); pdata->SetGroup(groupstr.String()); pdata->SetName(TRANSLATE("New Person")); pdata->SaveToFile(); delete pdata; AddPerson(ref,true); SortList(); SelectPerson(TRANSLATE("New Person")); dataview->SetFirstFieldFocus(); } } break; } case M_DELETE_PERSON: { int32 selection=fPeopleList->CurrentSelection(); if(selection<0) break; PeepsListItem *item=(PeepsListItem*)fPeopleList->ItemAt(selection); if(item->IsGroup()) DeleteGroup((GroupItem*)item); else { DeletePerson(((PersonItem*)item)->GetData()); } break; } case M_DISABLE_DELETE: { BMenuItem *item=fPeopleMenu->FindItem(TRANSLATE("Move To Trash")); if(item) item->SetEnabled(false); break; } case M_ENABLE_DELETE: { BMenuItem *item=fPeopleMenu->FindItem(TRANSLATE("Move To Trash")); if(item) item->SetEnabled(true); break; } case M_SET_LANGUAGE: { // Restart MrPeeps! gRestartApp=true; int32 language; if(msg->FindInt32("index",&language)!=B_OK) break; BMenuItem *item = fLanguageMenu->ItemAt(language); if(!item) break; fLocale = item->Label(); WriteLocaleSettings(); be_app->PostMessage(B_QUIT_REQUESTED); break; } case M_HANDLE_NO_SELECTION: { // This is the initial case. No selection means quite a few different // menu items are disabled. fTabMenu->SetEnabled(false); fEditMenu->SetEnabled(false); if(fToolPeopleAtAGlance) fToolPeopleAtAGlance->SetEnabled(false); if(fToolVCardExport) fToolVCardExport->SetEnabled(false); UpdateActions(true); break; } case M_HANDLE_GROUP_SELECTION: { // This is the initial case. No selection means quite a few different // menu items are disabled. fTabMenu->SetEnabled(false); fEditMenu->SetEnabled(true); if(fToolPeopleAtAGlance) fToolPeopleAtAGlance->SetEnabled(false); if(fToolVCardExport) fToolVCardExport->SetEnabled(false); UpdateActions(true); break; } case M_HANDLE_PERSON_SELECTION: { // This is the initial case. No selection means quite a few different // menu items are disabled. fTabMenu->SetEnabled(true); fEditMenu->SetEnabled(true); if(fToolPeopleAtAGlance) fToolPeopleAtAGlance->SetEnabled(true); if(fToolVCardExport) fToolVCardExport->SetEnabled(true); UpdateActions(false); break; } case M_SEND_PERSONAL_EMAIL: { if(dataview->Email()) { BMessage *emailmsg=new BMessage(M_SEND_EMAIL); emailmsg->AddString("address",dataview->Email()); be_app->PostMessage(emailmsg); } break; } case M_SEND_WORK_EMAIL: { if(dataview->WorkEmail()) { BMessage *emailmsg=new BMessage(M_SEND_EMAIL); emailmsg->AddString("address",dataview->WorkEmail()); be_app->PostMessage(emailmsg); } break; } case M_SEND_ALT_EMAIL: { if(dataview->Email3()) { BMessage *emailmsg=new BMessage(M_SEND_EMAIL); emailmsg->AddString("address",dataview->Email3()); be_app->PostMessage(emailmsg); } break; } case M_BROWSE_WWW_HOME: { if(dataview->URL()) { BMessage *wwwmsg=new BMessage(M_LAUNCH_BROWSER); wwwmsg->AddString("address",dataview->URL()); be_app->PostMessage(wwwmsg); } break; } case M_BROWSE_WWW_WORK: { if(dataview->WorkURL()) { BMessage *wwwmsg=new BMessage(M_LAUNCH_BROWSER); wwwmsg->AddString("address",dataview->WorkURL()); be_app->PostMessage(wwwmsg); } break; } case M_BROWSE_WWW_ALT: { if(dataview->OtherURL()) { BMessage *wwwmsg=new BMessage(M_LAUNCH_BROWSER); wwwmsg->AddString("address",dataview->OtherURL()); be_app->PostMessage(wwwmsg); } break; } case M_TAB_1: { fPeopleList->SyncData(); fPeopleList->SaveData(); dataview->ShowTab(0); if(!fPeopleList->IsFocus()) dataview->SetFirstFieldFocus(); break; } case M_TAB_2: { fPeopleList->SyncData(); fPeopleList->SaveData(); dataview->ShowTab(1); if(!fPeopleList->IsFocus()) dataview->SetFirstFieldFocus(); break; } case M_TAB_3: { fPeopleList->SyncData(); fPeopleList->SaveData(); dataview->ShowTab(2); if(!fPeopleList->IsFocus()) dataview->SetFirstFieldFocus(); break; } case M_TAB_4: { fPeopleList->SyncData(); fPeopleList->SaveData(); dataview->ShowTab(3); if(!fPeopleList->IsFocus()) dataview->SetFirstFieldFocus(); break; } case M_TAB_5: { fPeopleList->SyncData(); fPeopleList->SaveData(); dataview->ShowTab(4); if(!fPeopleList->IsFocus()) dataview->SetFirstFieldFocus(); break; } case M_UNDO: { dataview->UndoField(); break; } case M_CUT: { dataview->CutField(); break; } case M_COPY: { dataview->CopyField(); break; } case M_PASTE: { dataview->PasteField(); break; } case B_NODE_MONITOR: { HandleNodeMonitoring(msg); break; } default: { BWindow::MessageReceived(msg); break; } } }