# HG changeset patch # User Chris Cannam # Date 1302710713 -3600 # Node ID 2df4daf33fbd71ecf75a29f52f66e8962eeaa479 # Parent 3d87e427431d3dff0c03e0dcc270f49181809e3a Some simplifications under SIMPLIFIED_KDIFF3 ifdef. * Remove progress dialog on startup * Remove Merge menu, Directory menu's merge functions, and merge columns if only two files/directories provided diff -r 3d87e427431d -r 2df4daf33fbd kdiff3/src-QT4/directorymergewindow.cpp --- a/kdiff3/src-QT4/directorymergewindow.cpp Wed Apr 13 15:15:50 2011 +0000 +++ b/kdiff3/src-QT4/directorymergewindow.cpp Wed Apr 13 17:05:13 2011 +0100 @@ -537,7 +537,7 @@ m_pDirShowDifferentFiles->setChecked(true); m_pDirShowFilesOnlyInA->setChecked(true); m_pDirShowFilesOnlyInB->setChecked(true); - m_pDirShowFilesOnlyInC->setChecked(true); + if (m_pDirShowFilesOnlyInC) m_pDirShowFilesOnlyInC->setChecked(true); } // Check if all input directories exist and are valid. The dest dir is not tested now. @@ -717,6 +717,13 @@ QDir::setCurrent(origCurrentDirectory); +#ifdef SIMPLIFIED_KDIFF3 + if (!m_dirC.isValid()) { + setColumnHidden(s_OpCol, true); + setColumnHidden(s_OpStatusCol, true); + } +#endif + m_bScanning = false; statusBarMessage(i18n("Ready.")); @@ -2869,7 +2876,7 @@ bool bShowDifferent = m_pDirShowDifferentFiles->isChecked(); bool bShowOnlyInA = m_pDirShowFilesOnlyInA->isChecked(); bool bShowOnlyInB = m_pDirShowFilesOnlyInB->isChecked(); - bool bShowOnlyInC = m_pDirShowFilesOnlyInC->isChecked(); + bool bShowOnlyInC = m_pDirShowFilesOnlyInC && m_pDirShowFilesOnlyInC->isChecked(); bool bThreeDirs = m_dirC.isValid(); m_pSelection1Item = 0; m_pSelection2Item = 0; @@ -2956,21 +2963,75 @@ #include "xpm/showfilesonlyinc.xpm" DirectoryMergeWindow* p = this; - m_pDirStartOperation = KDiff3::createAction< KAction >(i18n("Start/Continue Directory Merge"), KShortcut( Qt::Key_F7 ), p, SLOT(slotRunOperationForAllItems()), ac, "dir_start_operation"); - m_pDirRunOperationForCurrentItem = KDiff3::createAction< KAction >(i18n("Run Operation for Current Item"), KShortcut( Qt::Key_F6 ), p, SLOT(slotRunOperationForCurrentItem()), ac, "dir_run_operation_for_current_item"); + bool showMergeOptions = true; +#ifdef SIMPLIFIED_KDIFF3 + if (!m_dirC.isValid()) { + showMergeOptions = false; + } +#endif + + if (showMergeOptions) { + m_pDirStartOperation = KDiff3::createAction< KAction >(i18n("Start/Continue Directory Merge"), KShortcut( Qt::Key_F7 ), p, SLOT(slotRunOperationForAllItems()), ac, "dir_start_operation"); + m_pDirRunOperationForCurrentItem = KDiff3::createAction< KAction >(i18n("Run Operation for Current Item"), KShortcut( Qt::Key_F6 ), p, SLOT(slotRunOperationForCurrentItem()), ac, "dir_run_operation_for_current_item"); + m_pDirMergeCurrent = KDiff3::createAction< KAction >(i18n("Merge Current File"), QIcon(QPixmap(startmerge)), i18n("Merge\nFile"), pKDiff3App, SLOT(slotMergeCurrentFile()), ac, "merge_current"); + m_pDirChooseAEverywhere = KDiff3::createAction< KAction >(i18n("Choose A for All Items"), p, SLOT(slotChooseAEverywhere()), ac, "dir_choose_a_everywhere"); + m_pDirChooseBEverywhere = KDiff3::createAction< KAction >(i18n("Choose B for All Items"), p, SLOT(slotChooseBEverywhere()), ac, "dir_choose_b_everywhere"); + m_pDirChooseCEverywhere = KDiff3::createAction< KAction >(i18n("Choose C for All Items"), p, SLOT(slotChooseCEverywhere()), ac, "dir_choose_c_everywhere"); + m_pDirAutoChoiceEverywhere = KDiff3::createAction< KAction >(i18n("Auto-Choose Operation for All Items"), p, SLOT(slotAutoChooseEverywhere()), ac, "dir_autochoose_everywhere"); + m_pDirDoNothingEverywhere = KDiff3::createAction< KAction >(i18n("No Operation for All Items"), p, SLOT(slotNoOpEverywhere()), ac, "dir_nothing_everywhere"); + m_pDirShowFilesOnlyInC = KDiff3::createAction< KToggleAction >(i18n("Show Files only in C"), QIcon(QPixmap(showfilesonlyinc)), i18n("Files\nonly in C"), this, SLOT(slotShowFilesOnlyInC()), ac, "dir_show_files_only_in_c"); + m_pDirMergeExplicit = KDiff3::createAction< KAction >(i18n("Merge Explicitly Selected Files"), p, SLOT(slotMergeExplicitlySelectedFiles()), ac, "dir_merge_explicitly_selected_files"); + + m_pDirCurrentDoNothing = KDiff3::createAction< KAction >(i18n("Do Nothing"), p, SLOT(slotCurrentDoNothing()), ac, "dir_current_do_nothing"); + m_pDirCurrentChooseA = KDiff3::createAction< KAction >(i18n("A"), p, SLOT(slotCurrentChooseA()), ac, "dir_current_choose_a"); + m_pDirCurrentChooseB = KDiff3::createAction< KAction >(i18n("B"), p, SLOT(slotCurrentChooseB()), ac, "dir_current_choose_b"); + m_pDirCurrentChooseC = KDiff3::createAction< KAction >(i18n("C"), p, SLOT(slotCurrentChooseC()), ac, "dir_current_choose_c"); + m_pDirCurrentMerge = KDiff3::createAction< KAction >(i18n("Merge"), p, SLOT(slotCurrentMerge()), ac, "dir_current_merge"); + m_pDirCurrentDelete = KDiff3::createAction< KAction >(i18n("Delete (if exists)"), p, SLOT(slotCurrentDelete()), ac, "dir_current_delete"); + + m_pDirCurrentSyncDoNothing = KDiff3::createAction< KAction >(i18n("Do Nothing"), p, SLOT(slotCurrentDoNothing()), ac, "dir_current_sync_do_nothing"); + m_pDirCurrentSyncCopyAToB = KDiff3::createAction< KAction >(i18n("Copy A to B"), p, SLOT(slotCurrentCopyAToB()), ac, "dir_current_sync_copy_a_to_b" ); + m_pDirCurrentSyncCopyBToA = KDiff3::createAction< KAction >(i18n("Copy B to A"), p, SLOT(slotCurrentCopyBToA()), ac, "dir_current_sync_copy_b_to_a" ); + m_pDirCurrentSyncDeleteA = KDiff3::createAction< KAction >(i18n("Delete A"), p, SLOT(slotCurrentDeleteA()), ac,"dir_current_sync_delete_a"); + m_pDirCurrentSyncDeleteB = KDiff3::createAction< KAction >(i18n("Delete B"), p, SLOT(slotCurrentDeleteB()), ac,"dir_current_sync_delete_b"); + m_pDirCurrentSyncDeleteAAndB = KDiff3::createAction< KAction >(i18n("Delete A && B"), p, SLOT(slotCurrentDeleteAAndB()), ac,"dir_current_sync_delete_a_and_b"); + m_pDirCurrentSyncMergeToA = KDiff3::createAction< KAction >(i18n("Merge to A"), p, SLOT(slotCurrentMergeToA()), ac,"dir_current_sync_merge_to_a"); + m_pDirCurrentSyncMergeToB = KDiff3::createAction< KAction >(i18n("Merge to B"), p, SLOT(slotCurrentMergeToB()), ac,"dir_current_sync_merge_to_b"); + m_pDirCurrentSyncMergeToAAndB = KDiff3::createAction< KAction >(i18n("Merge to A && B"), p, SLOT(slotCurrentMergeToAAndB()), ac,"dir_current_sync_merge_to_a_and_b"); + } else { + m_pDirStartOperation = 0; + m_pDirRunOperationForCurrentItem = 0; + m_pDirMergeCurrent = 0; + m_pDirChooseAEverywhere = 0; + m_pDirChooseBEverywhere = 0; + m_pDirChooseCEverywhere = 0; + m_pDirAutoChoiceEverywhere = 0; + m_pDirDoNothingEverywhere = 0; + m_pDirShowFilesOnlyInC = 0; + m_pDirMergeExplicit = 0; + m_pDirCurrentDoNothing = 0; + m_pDirCurrentChooseA = 0; + m_pDirCurrentChooseB = 0; + m_pDirCurrentChooseC = 0; + m_pDirCurrentMerge = 0; + m_pDirCurrentDelete = 0; + m_pDirCurrentSyncDoNothing = 0; + m_pDirCurrentSyncCopyBToA = 0; + m_pDirCurrentSyncCopyAToB = 0; + m_pDirCurrentSyncDeleteA = 0; + m_pDirCurrentSyncDeleteB = 0; + m_pDirCurrentSyncDeleteAAndB = 0; + m_pDirCurrentSyncMergeToA = 0; + m_pDirCurrentSyncMergeToB = 0; + m_pDirCurrentSyncMergeToAAndB = 0; + } + m_pDirCompareCurrent = KDiff3::createAction< KAction >(i18n("Compare Selected File"), p, SLOT(compareCurrentFile()), ac, "dir_compare_current"); - m_pDirMergeCurrent = KDiff3::createAction< KAction >(i18n("Merge Current File"), QIcon(QPixmap(startmerge)), i18n("Merge\nFile"), pKDiff3App, SLOT(slotMergeCurrentFile()), ac, "merge_current"); m_pDirFoldAll = KDiff3::createAction< KAction >(i18n("Fold All Subdirs"), p, SLOT(slotFoldAllSubdirs()), ac, "dir_fold_all"); m_pDirUnfoldAll = KDiff3::createAction< KAction >(i18n("Unfold All Subdirs"), p, SLOT(slotUnfoldAllSubdirs()), ac, "dir_unfold_all"); m_pDirRescan = KDiff3::createAction< KAction >(i18n("Rescan"), KShortcut( Qt::SHIFT+Qt::Key_F5 ), p, SLOT(reload()), ac, "dir_rescan"); m_pDirSaveMergeState = 0; //KDiff3::createAction< KAction >(i18n("Save Directory Merge State ..."), 0, p, SLOT(slotSaveMergeState()), ac, "dir_save_merge_state"); m_pDirLoadMergeState = 0; //KDiff3::createAction< KAction >(i18n("Load Directory Merge State ..."), 0, p, SLOT(slotLoadMergeState()), ac, "dir_load_merge_state"); - m_pDirChooseAEverywhere = KDiff3::createAction< KAction >(i18n("Choose A for All Items"), p, SLOT(slotChooseAEverywhere()), ac, "dir_choose_a_everywhere"); - m_pDirChooseBEverywhere = KDiff3::createAction< KAction >(i18n("Choose B for All Items"), p, SLOT(slotChooseBEverywhere()), ac, "dir_choose_b_everywhere"); - m_pDirChooseCEverywhere = KDiff3::createAction< KAction >(i18n("Choose C for All Items"), p, SLOT(slotChooseCEverywhere()), ac, "dir_choose_c_everywhere"); - m_pDirAutoChoiceEverywhere = KDiff3::createAction< KAction >(i18n("Auto-Choose Operation for All Items"), p, SLOT(slotAutoChooseEverywhere()), ac, "dir_autochoose_everywhere"); - m_pDirDoNothingEverywhere = KDiff3::createAction< KAction >(i18n("No Operation for All Items"), p, SLOT(slotNoOpEverywhere()), ac, "dir_nothing_everywhere"); - // m_pDirSynchronizeDirectories = KDiff3::createAction< KToggleAction >(i18n("Synchronize Directories"), 0, this, SLOT(slotSynchronizeDirectories()), ac, "dir_synchronize_directories"); // m_pDirChooseNewerFiles = KDiff3::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, SLOT(slotChooseNewerFiles()), ac, "dir_choose_newer_files"); @@ -2978,53 +3039,36 @@ m_pDirShowDifferentFiles = KDiff3::createAction< KToggleAction >(i18n("Show Different Files"), this, SLOT(slotShowDifferentFiles()), ac, "dir_show_different_files"); m_pDirShowFilesOnlyInA = KDiff3::createAction< KToggleAction >(i18n("Show Files only in A"), QIcon(QPixmap(showfilesonlyina)), i18n("Files\nonly in A"), this, SLOT(slotShowFilesOnlyInA()), ac, "dir_show_files_only_in_a"); m_pDirShowFilesOnlyInB = KDiff3::createAction< KToggleAction >(i18n("Show Files only in B"), QIcon(QPixmap(showfilesonlyinb)), i18n("Files\nonly in B"), this, SLOT(slotShowFilesOnlyInB()), ac, "dir_show_files_only_in_b"); - m_pDirShowFilesOnlyInC = KDiff3::createAction< KToggleAction >(i18n("Show Files only in C"), QIcon(QPixmap(showfilesonlyinc)), i18n("Files\nonly in C"), this, SLOT(slotShowFilesOnlyInC()), ac, "dir_show_files_only_in_c"); m_pDirShowIdenticalFiles->setChecked( m_pOptions->m_bDmShowIdenticalFiles ); m_pDirCompareExplicit = KDiff3::createAction< KAction >(i18n("Compare Explicitly Selected Files"), p, SLOT(slotCompareExplicitlySelectedFiles()), ac, "dir_compare_explicitly_selected_files"); - m_pDirMergeExplicit = KDiff3::createAction< KAction >(i18n("Merge Explicitly Selected Files"), p, SLOT(slotMergeExplicitlySelectedFiles()), ac, "dir_merge_explicitly_selected_files"); - - m_pDirCurrentDoNothing = KDiff3::createAction< KAction >(i18n("Do Nothing"), p, SLOT(slotCurrentDoNothing()), ac, "dir_current_do_nothing"); - m_pDirCurrentChooseA = KDiff3::createAction< KAction >(i18n("A"), p, SLOT(slotCurrentChooseA()), ac, "dir_current_choose_a"); - m_pDirCurrentChooseB = KDiff3::createAction< KAction >(i18n("B"), p, SLOT(slotCurrentChooseB()), ac, "dir_current_choose_b"); - m_pDirCurrentChooseC = KDiff3::createAction< KAction >(i18n("C"), p, SLOT(slotCurrentChooseC()), ac, "dir_current_choose_c"); - m_pDirCurrentMerge = KDiff3::createAction< KAction >(i18n("Merge"), p, SLOT(slotCurrentMerge()), ac, "dir_current_merge"); - m_pDirCurrentDelete = KDiff3::createAction< KAction >(i18n("Delete (if exists)"), p, SLOT(slotCurrentDelete()), ac, "dir_current_delete"); - - m_pDirCurrentSyncDoNothing = KDiff3::createAction< KAction >(i18n("Do Nothing"), p, SLOT(slotCurrentDoNothing()), ac, "dir_current_sync_do_nothing"); - m_pDirCurrentSyncCopyAToB = KDiff3::createAction< KAction >(i18n("Copy A to B"), p, SLOT(slotCurrentCopyAToB()), ac, "dir_current_sync_copy_a_to_b" ); - m_pDirCurrentSyncCopyBToA = KDiff3::createAction< KAction >(i18n("Copy B to A"), p, SLOT(slotCurrentCopyBToA()), ac, "dir_current_sync_copy_b_to_a" ); - m_pDirCurrentSyncDeleteA = KDiff3::createAction< KAction >(i18n("Delete A"), p, SLOT(slotCurrentDeleteA()), ac,"dir_current_sync_delete_a"); - m_pDirCurrentSyncDeleteB = KDiff3::createAction< KAction >(i18n("Delete B"), p, SLOT(slotCurrentDeleteB()), ac,"dir_current_sync_delete_b"); - m_pDirCurrentSyncDeleteAAndB = KDiff3::createAction< KAction >(i18n("Delete A && B"), p, SLOT(slotCurrentDeleteAAndB()), ac,"dir_current_sync_delete_a_and_b"); - m_pDirCurrentSyncMergeToA = KDiff3::createAction< KAction >(i18n("Merge to A"), p, SLOT(slotCurrentMergeToA()), ac,"dir_current_sync_merge_to_a"); - m_pDirCurrentSyncMergeToB = KDiff3::createAction< KAction >(i18n("Merge to B"), p, SLOT(slotCurrentMergeToB()), ac,"dir_current_sync_merge_to_b"); - m_pDirCurrentSyncMergeToAAndB = KDiff3::createAction< KAction >(i18n("Merge to A && B"), p, SLOT(slotCurrentMergeToAAndB()), ac,"dir_current_sync_merge_to_a_and_b"); } void DirectoryMergeWindow::updateAvailabilities( bool bDirCompare, bool bDiffWindowVisible, KToggleAction* chooseA, KToggleAction* chooseB, KToggleAction* chooseC ) { - m_pDirStartOperation->setEnabled( bDirCompare ); - m_pDirRunOperationForCurrentItem->setEnabled( bDirCompare ); - m_pDirFoldAll->setEnabled( bDirCompare ); - m_pDirUnfoldAll->setEnabled( bDirCompare ); - - m_pDirCompareCurrent->setEnabled( bDirCompare && isVisible() && isFileSelected() ); - - m_pDirMergeCurrent->setEnabled( (bDirCompare && isVisible() && isFileSelected()) - || bDiffWindowVisible ); + if (m_pDirStartOperation) m_pDirStartOperation->setEnabled( bDirCompare ); + if (m_pDirRunOperationForCurrentItem) m_pDirRunOperationForCurrentItem->setEnabled( bDirCompare ); + m_pDirFoldAll->setEnabled( bDirCompare ); + m_pDirUnfoldAll->setEnabled( bDirCompare ); + + m_pDirCompareCurrent->setEnabled( bDirCompare && isVisible() && isFileSelected() ); + + if (m_pDirMergeCurrent) { + m_pDirMergeCurrent->setEnabled( (bDirCompare && isVisible() && isFileSelected()) + || bDiffWindowVisible ); + + m_pDirAutoChoiceEverywhere->setEnabled( bDirCompare && isVisible() ); + m_pDirDoNothingEverywhere->setEnabled( bDirCompare && isVisible() ); + m_pDirChooseAEverywhere->setEnabled( bDirCompare && isVisible() ); + m_pDirChooseBEverywhere->setEnabled( bDirCompare && isVisible() ); + m_pDirChooseCEverywhere->setEnabled( bDirCompare && isVisible() ); + } m_pDirRescan->setEnabled( bDirCompare ); - m_pDirAutoChoiceEverywhere->setEnabled( bDirCompare && isVisible() ); - m_pDirDoNothingEverywhere->setEnabled( bDirCompare && isVisible() ); - m_pDirChooseAEverywhere->setEnabled( bDirCompare && isVisible() ); - m_pDirChooseBEverywhere->setEnabled( bDirCompare && isVisible() ); - m_pDirChooseCEverywhere->setEnabled( bDirCompare && isVisible() ); - bool bThreeDirs = m_dirC.isValid(); QTreeWidgetItem* lvi = currentItem(); @@ -3041,36 +3085,41 @@ m_pDirShowDifferentFiles->setEnabled( bDirCompare && isVisible() ); m_pDirShowFilesOnlyInA->setEnabled( bDirCompare && isVisible() ); m_pDirShowFilesOnlyInB->setEnabled( bDirCompare && isVisible() ); - m_pDirShowFilesOnlyInC->setEnabled( bDirCompare && isVisible() && bThreeDirs ); + + if (m_pDirShowFilesOnlyInC) m_pDirShowFilesOnlyInC->setEnabled( bDirCompare && isVisible() && bThreeDirs ); m_pDirCompareExplicit->setEnabled( bDirCompare && isVisible() && m_pSelection2Item!=0 ); - m_pDirMergeExplicit->setEnabled( bDirCompare && isVisible() && m_pSelection2Item!=0 ); - - m_pDirCurrentDoNothing->setEnabled( bItemActive && bMergeMode ); - m_pDirCurrentChooseA->setEnabled( bItemActive && bMergeMode && pMFI->m_bExistsInA ); - m_pDirCurrentChooseB->setEnabled( bItemActive && bMergeMode && pMFI->m_bExistsInB ); - m_pDirCurrentChooseC->setEnabled( bItemActive && bMergeMode && pMFI->m_bExistsInC ); - m_pDirCurrentMerge->setEnabled( bItemActive && bMergeMode && !bFTConflict ); - m_pDirCurrentDelete->setEnabled( bItemActive && bMergeMode ); - if ( bDirWindowHasFocus ) - { - chooseA->setEnabled( bItemActive && pMFI->m_bExistsInA ); - chooseB->setEnabled( bItemActive && pMFI->m_bExistsInB ); - chooseC->setEnabled( bItemActive && pMFI->m_bExistsInC ); - chooseA->setChecked( false ); - chooseB->setChecked( false ); - chooseC->setChecked( false ); + + if (m_pDirMergeExplicit) { + m_pDirMergeExplicit->setEnabled( bDirCompare && isVisible() && m_pSelection2Item!=0 ); + + m_pDirCurrentDoNothing->setEnabled( bItemActive && bMergeMode ); + m_pDirCurrentChooseA->setEnabled( bItemActive && bMergeMode && pMFI->m_bExistsInA ); + m_pDirCurrentChooseB->setEnabled( bItemActive && bMergeMode && pMFI->m_bExistsInB ); + m_pDirCurrentChooseC->setEnabled( bItemActive && bMergeMode && pMFI->m_bExistsInC ); + m_pDirCurrentMerge->setEnabled( bItemActive && bMergeMode && !bFTConflict ); + m_pDirCurrentDelete->setEnabled( bItemActive && bMergeMode ); + + if ( bDirWindowHasFocus ) + { + chooseA->setEnabled( bItemActive && pMFI->m_bExistsInA ); + chooseB->setEnabled( bItemActive && pMFI->m_bExistsInB ); + chooseC->setEnabled( bItemActive && pMFI->m_bExistsInC ); + chooseA->setChecked( false ); + chooseB->setChecked( false ); + chooseC->setChecked( false ); + } + + m_pDirCurrentSyncDoNothing->setEnabled( bItemActive && !bMergeMode ); + m_pDirCurrentSyncCopyAToB->setEnabled( bItemActive && !bMergeMode && pMFI->m_bExistsInA ); + m_pDirCurrentSyncCopyBToA->setEnabled( bItemActive && !bMergeMode && pMFI->m_bExistsInB ); + m_pDirCurrentSyncDeleteA->setEnabled( bItemActive && !bMergeMode && pMFI->m_bExistsInA ); + m_pDirCurrentSyncDeleteB->setEnabled( bItemActive && !bMergeMode && pMFI->m_bExistsInB ); + m_pDirCurrentSyncDeleteAAndB->setEnabled( bItemActive && !bMergeMode && pMFI->m_bExistsInB && pMFI->m_bExistsInB ); + m_pDirCurrentSyncMergeToA->setEnabled( bItemActive && !bMergeMode && !bFTConflict ); + m_pDirCurrentSyncMergeToB->setEnabled( bItemActive && !bMergeMode && !bFTConflict ); + m_pDirCurrentSyncMergeToAAndB->setEnabled( bItemActive && !bMergeMode && !bFTConflict ); } - - m_pDirCurrentSyncDoNothing->setEnabled( bItemActive && !bMergeMode ); - m_pDirCurrentSyncCopyAToB->setEnabled( bItemActive && !bMergeMode && pMFI->m_bExistsInA ); - m_pDirCurrentSyncCopyBToA->setEnabled( bItemActive && !bMergeMode && pMFI->m_bExistsInB ); - m_pDirCurrentSyncDeleteA->setEnabled( bItemActive && !bMergeMode && pMFI->m_bExistsInA ); - m_pDirCurrentSyncDeleteB->setEnabled( bItemActive && !bMergeMode && pMFI->m_bExistsInB ); - m_pDirCurrentSyncDeleteAAndB->setEnabled( bItemActive && !bMergeMode && pMFI->m_bExistsInB && pMFI->m_bExistsInB ); - m_pDirCurrentSyncMergeToA->setEnabled( bItemActive && !bMergeMode && !bFTConflict ); - m_pDirCurrentSyncMergeToB->setEnabled( bItemActive && !bMergeMode && !bFTConflict ); - m_pDirCurrentSyncMergeToAAndB->setEnabled( bItemActive && !bMergeMode && !bFTConflict ); } diff -r 3d87e427431d -r 2df4daf33fbd kdiff3/src-QT4/fileaccess.cpp --- a/kdiff3/src-QT4/fileaccess.cpp Wed Apr 13 15:15:50 2011 +0000 +++ b/kdiff3/src-QT4/fileaccess.cpp Wed Apr 13 17:05:13 2011 +0100 @@ -1758,6 +1758,51 @@ } +#ifdef SIMPLIFIED_KDIFF3 + +ProgressProxy::ProgressProxy() +{ +} + +ProgressProxy::~ProgressProxy() +{ +} + +void ProgressProxy::setInformation( const QString& info, bool bRedrawUpdate ) +{ +} + +void ProgressProxy::setInformation( const QString& info, double dCurrent, bool bRedrawUpdate ) +{ +} + +void ProgressProxy::setCurrent( double dCurrent, bool bRedrawUpdate ) +{ +} + +void ProgressProxy::step( bool bRedrawUpdate ) +{ +} + +void ProgressProxy::setMaxNofSteps( int maxNofSteps ) +{ +} + +bool ProgressProxy::wasCancelled() +{ + return false; +} + +void ProgressProxy::setRangeTransformation( double dMin, double dMax ) +{ +} + +void ProgressProxy::setSubRangeTransformation( double dMin, double dMax ) +{ +} + +#else + ProgressProxy::ProgressProxy() { g_pProgressDialog->push(); @@ -1808,7 +1853,7 @@ g_pProgressDialog->setSubRangeTransformation( dMin, dMax ); } - +#endif diff -r 3d87e427431d -r 2df4daf33fbd kdiff3/src-QT4/kdiff3.cpp --- a/kdiff3/src-QT4/kdiff3.cpp Wed Apr 13 15:15:50 2011 +0000 +++ b/kdiff3/src-QT4/kdiff3.cpp Wed Apr 13 17:05:13 2011 +0100 @@ -340,6 +340,26 @@ { if (m_pKDiff3Shell!=0) { +#ifdef SIMPLIFIED_KDIFF3 + if (fn3.isEmpty()) { + QWidget *w = m_pKDiff3Shell; + if (w) { + QMainWindow *mw = 0; + while (!(mw = qobject_cast(w))) { + w = w->parentWidget(); + } + if (mw) { + foreach (QObject *o, mw->menuBar()->children()) { + QMenu *m = qobject_cast(o); + if (m && m->title() == i18n("&Merge")) { + delete m; + } + } + } + } + } +#endif + QSize size=m_pOptionDialog->m_geometry; QPoint pos=m_pOptionDialog->m_position; if(!size.isEmpty()) @@ -457,6 +477,7 @@ { slotFileOpen(); } + } KDiff3App::~KDiff3App() diff -r 3d87e427431d -r 2df4daf33fbd kdiff3/src-QT4/kdiff3.pro --- a/kdiff3/src-QT4/kdiff3.pro Wed Apr 13 15:15:50 2011 +0000 +++ b/kdiff3/src-QT4/kdiff3.pro Wed Apr 13 17:05:13 2011 +0100 @@ -1,4 +1,5 @@ TEMPLATE = app +DEFINES += SIMPLIFIED_KDIFF3 # When unresolved items remain during linking: Try adding "shared" in the CONFIG. CONFIG += qt warn_on thread precompile_header !os2:PRECOMPILED_HEADER = stable.h diff -r 3d87e427431d -r 2df4daf33fbd kdiff3/src-QT4/pdiff.cpp --- a/kdiff3/src-QT4/pdiff.cpp Wed Apr 13 15:15:50 2011 +0000 +++ b/kdiff3/src-QT4/pdiff.cpp Wed Apr 13 17:05:13 2011 +0100 @@ -418,6 +418,24 @@ m_bTripleDiff = ! m_sd3.isEmpty(); +#ifdef SIMPLIFIED_KDIFF3 + if (!m_sd3.isValid()) { + QWidget *w = m_pMainWidget; + QMainWindow *mw = 0; + while (!(mw = qobject_cast(w))) { + w = w->parentWidget(); + } + if (mw) { + foreach (QObject *o, mw->menuBar()->children()) { + QMenu *m = qobject_cast(o); + if (m && m->title() == i18n("&Merge")) { + delete m; + } + } + } + } +#endif + m_pMergeResultWindowTitle->setEncodings( m_sd1.getEncoding(), m_sd2.getEncoding(), m_sd3.getEncoding() ); if ( ! m_pOptionDialog->m_bAutoSelectOutEncoding ) m_pMergeResultWindowTitle->setEncoding( m_pOptionDialog->m_pEncodingOut );