Changeset 217

Show
Ignore:
Timestamp:
06/10/06 19:13:25 (2 years ago)
Author:
jordi
Message:

Implemented the sensitivity of the Collate option.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/IPrintView.h

    r216 r217  
    6262 
    6363            /// 
     64            /// @brief Gets the number of copies to do. 
     65            /// 
     66            /// @return The number of copies of the document to print. The 
     67            ///         range is between 1 and 999. 
     68            /// 
     69            virtual unsigned int getNumberOfCopies (void) = 0; 
     70 
     71            /// 
    6472            /// @brief Changes the sensitivity of the "Collate" option. 
    6573            /// 
  • trunk/src/PrintPter.cxx

    r216 r217  
    5858 
    5959void 
     60PrintPter::numberOfCopiesChanged (void) 
     61{ 
     62    IPrintView &view = getView (); 
     63    if ( 1 == view.getNumberOfCopies () ) 
     64    { 
     65        view.sensitiveCollate (FALSE); 
     66    } 
     67    else 
     68    { 
     69        view.sensitiveCollate (TRUE); 
     70    } 
     71} 
     72 
     73void 
    6074PrintPter::printActivated (void) 
    6175{ 
  • trunk/src/PrintPter.h

    r213 r217  
    3535 
    3636            void cancelActivated (void); 
     37            void numberOfCopiesChanged (void); 
    3738            void printActivated (void); 
    3839 
  • trunk/src/gtk/PrintView.cxx

    r214 r217  
    9090        pter->cancelActivated (); 
    9191    } 
     92} 
     93 
     94unsigned int 
     95PrintView::getNumberOfCopies () 
     96{ 
     97    return gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (m_NumberOfCopies)); 
     98} 
     99 
     100void 
     101PrintView::sensitiveCollate (gboolean sensitive) 
     102{ 
     103    gtk_widget_set_sensitive (m_Collate, sensitive); 
     104} 
     105 
     106void 
     107PrintView::sensitivePageRange (gboolean sensitive) 
     108{ 
     109    gtk_widget_set_sensitive (m_PageRange, sensitive); 
    92110} 
    93111 
     
    125143        gtk_radio_button_new_with_mnemonic_from_widget ( 
    126144                GTK_RADIO_BUTTON (allPagesRadio), _("_Range:")); 
    127     GtkWidget *pageRangeEntry = gtk_entry_new (); 
     145    m_PageRange = gtk_entry_new (); 
    128146    gtk_table_attach_defaults (GTK_TABLE (printRangeTable), allPagesRadio, 
    129147                               0, 2, 0, 1); 
    130148    gtk_table_attach_defaults (GTK_TABLE (printRangeTable), pageRangeRadio, 
    131149                               0, 1, 1, 2); 
    132     gtk_table_attach_defaults (GTK_TABLE (printRangeTable), pageRangeEntry
     150    gtk_table_attach_defaults (GTK_TABLE (printRangeTable), m_PageRange
    133151                               1, 2, 1, 2); 
    134152 
     
    161179    gtk_box_pack_start_defaults (GTK_BOX (pageSetBox), evenPageSetRadio); 
    162180 
    163  
    164181    // Copies frame 
    165182    GtkWidget *copiesLabel = gtk_label_new (_("<b>Copies</b>")); 
     
    183200    gtk_misc_set_alignment (GTK_MISC (numCopiesLabel), 1.0, 0.5); 
    184201    gtk_label_set_use_underline (GTK_LABEL (numCopiesLabel), TRUE); 
    185     GtkWidget *numCopiesSpin = gtk_spin_button_new_with_range (1, 999, 1); 
    186     gtk_label_set_mnemonic_widget (GTK_LABEL (numCopiesLabel), numCopiesSpin); 
     202    GtkWidget *m_NumberOfCopies = gtk_spin_button_new_with_range (1, 999, 1); 
     203    gtk_label_set_mnemonic_widget (GTK_LABEL (numCopiesLabel), 
     204                                   m_NumberOfCopies); 
    187205    // Create the collate check box. 
    188     GtkWidget *collateCheck = 
    189         gtk_check_button_new_with_mnemonic (_("C_ollate")); 
     206    m_Collate = gtk_check_button_new_with_mnemonic (_("C_ollate")); 
    190207    gtk_table_attach (GTK_TABLE (copiesTable), numCopiesLabel, 
    191208                      0, 1, 0, 1, 
     
    193210                      (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 
    194211                      0, 0); 
    195     gtk_table_attach_defaults (GTK_TABLE (copiesTable), numCopiesSpin
     212    gtk_table_attach_defaults (GTK_TABLE (copiesTable), m_NumberOfCopies
    196213                               1, 2, 0, 1); 
    197     gtk_table_attach_defaults (GTK_TABLE (copiesTable), collateCheck
     214    gtk_table_attach_defaults (GTK_TABLE (copiesTable), m_Collate
    198215                               1, 2, 1, 2); 
    199216 
  • trunk/src/gtk/PrintView.h

    r214 r217  
    2929            virtual void setPresenter (PrintPter *pter); 
    3030 
     31            virtual unsigned int getNumberOfCopies (void); 
     32            virtual void sensitiveCollate (gboolean sensitive); 
     33            virtual void sensitivePageRange (gboolean sensitive); 
     34 
    3135        protected: 
     36            GtkWidget *m_Collate; 
     37            GtkWidget *m_NumberOfCopies; 
     38            GtkWidget *m_PageRange; 
    3239            GtkWidget *m_PrintDialog; 
    3340            GtkTreeStore *m_PrinterList; 
  • trunk/tests/DumbPrintView.cxx

    r216 r217  
    2424    IPrintView () 
    2525{ 
     26    m_NumberOfCopies = 1; 
    2627    m_SensitiveCollate = TRUE; 
    2728    m_SensitivePageRange = TRUE; 
     
    3031DumbPrintView::~DumbPrintView () 
    3132{ 
     33} 
     34 
     35unsigned int 
     36DumbPrintView::getNumberOfCopies () 
     37{ 
     38    return m_NumberOfCopies; 
    3239} 
    3340 
     
    5966    return m_SensitivePageRange; 
    6067} 
     68 
     69void 
     70DumbPrintView::setNumberOfCopies (unsigned int copies) 
     71{ 
     72    m_NumberOfCopies = copies; 
     73} 
  • trunk/tests/DumbPrintView.h

    r216 r217  
    2727            virtual ~DumbPrintView (void); 
    2828 
     29            virtual unsigned int getNumberOfCopies (void); 
    2930            virtual void sensitiveCollate (gboolean sensitive); 
    3031            virtual void sensitivePageRange (gboolean sensitive); 
     
    3334            gboolean isSensitiveCollate (void); 
    3435            gboolean isSensitivePageRange (void); 
     36            void setNumberOfCopies (unsigned int copies); 
    3537 
    3638        protected: 
     39            gint m_NumberOfCopies; 
    3740            gboolean m_SensitiveCollate; 
    3841            gboolean m_SensitivePageRange; 
  • trunk/tests/PrintPterTest.cxx

    r216 r217  
    6767    CPPUNIT_ASSERT ( !m_View->isSensitiveCollate ()); 
    6868} 
     69 
     70/// 
     71/// @brief Check "Collate"'s sensitivity. 
     72/// 
     73/// The collate option is always sensitive unless the number 
     74/// of copies is 1. 
     75/// 
     76void 
     77PrintPterTest::collateSensitivity () 
     78{ 
     79    m_View->setNumberOfCopies (1); 
     80    m_PrintPter->numberOfCopiesChanged (); 
     81    CPPUNIT_ASSERT ( !m_View->isSensitiveCollate ()); 
     82 
     83    m_View->setNumberOfCopies (10); 
     84    m_PrintPter->numberOfCopiesChanged (); 
     85    CPPUNIT_ASSERT ( m_View->isSensitiveCollate ()); 
     86 
     87    m_View->setNumberOfCopies (234); 
     88    m_PrintPter->numberOfCopiesChanged (); 
     89    CPPUNIT_ASSERT ( m_View->isSensitiveCollate ()); 
     90 
     91    m_View->setNumberOfCopies (1); 
     92    m_PrintPter->numberOfCopiesChanged (); 
     93    CPPUNIT_ASSERT ( !m_View->isSensitiveCollate ()); 
     94 
     95    m_View->setNumberOfCopies (32); 
     96    m_PrintPter->numberOfCopiesChanged (); 
     97    CPPUNIT_ASSERT ( m_View->isSensitiveCollate ()); 
     98} 
  • trunk/tests/PrintPterTest.h

    r216 r217  
    2727        CPPUNIT_TEST_SUITE (PrintPterTest); 
    2828        CPPUNIT_TEST (initialSensitivity); 
     29        CPPUNIT_TEST (collateSensitivity); 
    2930        CPPUNIT_TEST_SUITE_END (); 
    3031 
     
    3435 
    3536            void initialSensitivity (void); 
     37            void collateSensitivity (void); 
    3638 
    3739        protected: