added 'check' operation. The functionality was already there, but it was
* include/Makefile.am, include/Operation.h, include/Win_GParted.h, src/GParted_Core.cc, src/Makefile.am, src/Win_GParted.cc, include/OperationCheck.h (new), src/OperationCheck.cc (new): added 'check' operation. The functionality was already there, but it was not possible yet to activate it from the gui.
This commit is contained in:
parent
61c91a1869
commit
ef09ce0b97
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
||||||
|
2006-11-26 Bart Hakvoort <hakvoort@cvs.gnome.org>
|
||||||
|
|
||||||
|
* include/Makefile.am,
|
||||||
|
include/Operation.h,
|
||||||
|
include/Win_GParted.h,
|
||||||
|
src/GParted_Core.cc,
|
||||||
|
src/Makefile.am,
|
||||||
|
src/Win_GParted.cc,
|
||||||
|
include/OperationCheck.h (new),
|
||||||
|
src/OperationCheck.cc (new): added 'check' operation. The
|
||||||
|
functionality was already there, but it was not possible yet to
|
||||||
|
activate it from the gui.
|
||||||
|
|
||||||
2006-11-25 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
|
2006-11-25 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
|
||||||
|
|
||||||
* configure.in: Add "zh_HK" to ALL_LINGUAS.
|
* configure.in: Add "zh_HK" to ALL_LINGUAS.
|
||||||
|
|
|
@ -19,6 +19,7 @@ EXTRA_DIST = \
|
||||||
HBoxOperations.h \
|
HBoxOperations.h \
|
||||||
Operation.h \
|
Operation.h \
|
||||||
OperationCopy.h \
|
OperationCopy.h \
|
||||||
|
OperationCheck.h \
|
||||||
OperationCreate.h \
|
OperationCreate.h \
|
||||||
OperationDelete.h \
|
OperationDelete.h \
|
||||||
OperationDetail.h \
|
OperationDetail.h \
|
||||||
|
|
|
@ -26,10 +26,11 @@ namespace GParted
|
||||||
//FIXME: stop using GParted:: in front of our own enums.. it's not necessary and clutters the code
|
//FIXME: stop using GParted:: in front of our own enums.. it's not necessary and clutters the code
|
||||||
enum OperationType {
|
enum OperationType {
|
||||||
OPERATION_DELETE = 0,
|
OPERATION_DELETE = 0,
|
||||||
OPERATION_CREATE = 1,
|
OPERATION_CHECK = 1,
|
||||||
OPERATION_RESIZE_MOVE = 2,
|
OPERATION_CREATE = 2,
|
||||||
OPERATION_FORMAT = 3,
|
OPERATION_RESIZE_MOVE = 3,
|
||||||
OPERATION_COPY = 4
|
OPERATION_FORMAT = 4,
|
||||||
|
OPERATION_COPY = 5
|
||||||
};
|
};
|
||||||
|
|
||||||
class Operation
|
class Operation
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
/* Copyright (C) 2004 Bart 'plors' Hakvoort
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPERATIONCHECK
|
||||||
|
#define OPERATIONCHECK
|
||||||
|
|
||||||
|
#include "../include/Operation.h"
|
||||||
|
|
||||||
|
namespace GParted
|
||||||
|
{
|
||||||
|
|
||||||
|
class OperationCheck : public Operation
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
OperationCheck( const Device & device, const Partition & partition ) ;
|
||||||
|
|
||||||
|
void apply_to_visual( std::vector<Partition> & partitions ) ;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void create_description() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
} //GParted
|
||||||
|
|
||||||
|
#endif //OPERATIONCHECK
|
|
@ -97,6 +97,9 @@ private:
|
||||||
void allow_manage_flags( bool state ) {
|
void allow_manage_flags( bool state ) {
|
||||||
toggle_item( state, MENU_FLAGS ) ; }
|
toggle_item( state, MENU_FLAGS ) ; }
|
||||||
|
|
||||||
|
void allow_check( bool state ) {
|
||||||
|
toggle_item( state, MENU_CHECK ) ; }
|
||||||
|
|
||||||
void allow_info( bool state ) {
|
void allow_info( bool state ) {
|
||||||
toggle_item( state, MENU_INFO ) ; }
|
toggle_item( state, MENU_INFO ) ; }
|
||||||
|
|
||||||
|
@ -154,6 +157,7 @@ private:
|
||||||
void activate_mount_partition( unsigned int index ) ;
|
void activate_mount_partition( unsigned int index ) ;
|
||||||
void activate_disklabel() ;
|
void activate_disklabel() ;
|
||||||
void activate_manage_flags() ;
|
void activate_manage_flags() ;
|
||||||
|
void activate_check() ;
|
||||||
|
|
||||||
void activate_undo();
|
void activate_undo();
|
||||||
void remove_operation( int index = -1, bool remove_all = false ) ;
|
void remove_operation( int index = -1, bool remove_all = false ) ;
|
||||||
|
@ -218,6 +222,7 @@ private:
|
||||||
MENU_TOGGLE_MOUNT_SWAP,
|
MENU_TOGGLE_MOUNT_SWAP,
|
||||||
MENU_MOUNT,
|
MENU_MOUNT,
|
||||||
MENU_FLAGS,
|
MENU_FLAGS,
|
||||||
|
MENU_CHECK,
|
||||||
MENU_INFO,
|
MENU_INFO,
|
||||||
TOOLBAR_UNDO,
|
TOOLBAR_UNDO,
|
||||||
TOOLBAR_APPLY ;
|
TOOLBAR_APPLY ;
|
||||||
|
|
|
@ -289,6 +289,10 @@ bool GParted_Core::apply_operation_to_disk( Operation * operation )
|
||||||
case OPERATION_DELETE:
|
case OPERATION_DELETE:
|
||||||
succes = Delete( operation ->partition_original, operation ->operation_detail ) ;
|
succes = Delete( operation ->partition_original, operation ->operation_detail ) ;
|
||||||
break ;
|
break ;
|
||||||
|
case OPERATION_CHECK:
|
||||||
|
succes = check_repair_filesystem( operation ->partition_original, operation ->operation_detail ) &&
|
||||||
|
maximize_filesystem( operation ->partition_original, operation ->operation_detail ) ;
|
||||||
|
break ;
|
||||||
case OPERATION_CREATE:
|
case OPERATION_CREATE:
|
||||||
succes = create( operation ->device,
|
succes = create( operation ->device,
|
||||||
operation ->partition_new,
|
operation ->partition_new,
|
||||||
|
@ -1569,10 +1573,10 @@ bool GParted_Core::copy( const Partition & partition_src,
|
||||||
|
|
||||||
operationdetail .get_last_child() .set_status( succes ? STATUS_SUCCES : STATUS_ERROR ) ;
|
operationdetail .get_last_child() .set_status( succes ? STATUS_SUCCES : STATUS_ERROR ) ;
|
||||||
|
|
||||||
return ( succes &&
|
return succes &&
|
||||||
update_bootsector( partition_dst, operationdetail ) &&
|
update_bootsector( partition_dst, operationdetail ) &&
|
||||||
check_repair_filesystem( partition_dst, operationdetail ) &&
|
check_repair_filesystem( partition_dst, operationdetail ) &&
|
||||||
maximize_filesystem( partition_dst, operationdetail ) ) ;
|
maximize_filesystem( partition_dst, operationdetail ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ gparted_SOURCES = \
|
||||||
HBoxOperations.cc \
|
HBoxOperations.cc \
|
||||||
Operation.cc \
|
Operation.cc \
|
||||||
OperationCopy.cc \
|
OperationCopy.cc \
|
||||||
|
OperationCheck.cc \
|
||||||
OperationCreate.cc \
|
OperationCreate.cc \
|
||||||
OperationDelete.cc \
|
OperationDelete.cc \
|
||||||
OperationDetail.cc \
|
OperationDetail.cc \
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
/* Copyright (C) 2004 Bart 'plors' Hakvoort
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "../include/OperationCheck.h"
|
||||||
|
|
||||||
|
namespace GParted
|
||||||
|
{
|
||||||
|
|
||||||
|
OperationCheck::OperationCheck( const Device & device, const Partition & partition )
|
||||||
|
{
|
||||||
|
type = OPERATION_CHECK ;
|
||||||
|
|
||||||
|
this ->device = device ;
|
||||||
|
partition_original = partition ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OperationCheck::apply_to_visual( std::vector<Partition> & partitions )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void OperationCheck::create_description()
|
||||||
|
{
|
||||||
|
/*TO TRANSLATORS: looks like Check and repair filesystem (ext3) on /dev/hda4 */
|
||||||
|
description = String::ucompose( _("Check and repair filesystem (%1) on %2"),
|
||||||
|
Utils::get_filesystem_string( partition_original .filesystem ),
|
||||||
|
partition_original .get_path() ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
} //GParted
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "../include/Dialog_Partition_Info.h"
|
#include "../include/Dialog_Partition_Info.h"
|
||||||
#include "../include/DialogManageFlags.h"
|
#include "../include/DialogManageFlags.h"
|
||||||
#include "../include/OperationCopy.h"
|
#include "../include/OperationCopy.h"
|
||||||
|
#include "../include/OperationCheck.h"
|
||||||
#include "../include/OperationCreate.h"
|
#include "../include/OperationCreate.h"
|
||||||
#include "../include/OperationDelete.h"
|
#include "../include/OperationDelete.h"
|
||||||
#include "../include/OperationFormat.h"
|
#include "../include/OperationFormat.h"
|
||||||
|
@ -334,6 +335,11 @@ void Win_GParted::init_partition_menu()
|
||||||
sigc::mem_fun( *this, &Win_GParted::activate_manage_flags ) ) );
|
sigc::mem_fun( *this, &Win_GParted::activate_manage_flags ) ) );
|
||||||
MENU_FLAGS = index++ ;
|
MENU_FLAGS = index++ ;
|
||||||
|
|
||||||
|
menu_partition .items() .push_back(
|
||||||
|
Gtk::Menu_Helpers::MenuElem( _("C_heck"),
|
||||||
|
sigc::mem_fun( *this, &Win_GParted::activate_check ) ) );
|
||||||
|
MENU_CHECK = index++ ;
|
||||||
|
|
||||||
menu_partition .items() .push_back( Gtk::Menu_Helpers::SeparatorElem() ) ;
|
menu_partition .items() .push_back( Gtk::Menu_Helpers::SeparatorElem() ) ;
|
||||||
index++ ;
|
index++ ;
|
||||||
|
|
||||||
|
@ -606,8 +612,10 @@ void Win_GParted::Add_Operation( Operation * operation, int index )
|
||||||
if ( operation )
|
if ( operation )
|
||||||
{
|
{
|
||||||
Glib::ustring error ;
|
Glib::ustring error ;
|
||||||
|
//FIXME: this is becoming a mess.. maybe it's better to check if partition_new > 0
|
||||||
if ( operation ->type == OPERATION_DELETE ||
|
if ( operation ->type == OPERATION_DELETE ||
|
||||||
operation ->type == OPERATION_FORMAT ||
|
operation ->type == OPERATION_FORMAT ||
|
||||||
|
operation ->type == OPERATION_CHECK ||
|
||||||
gparted_core .snap_to_cylinder( operation ->device, operation ->partition_new, error ) )
|
gparted_core .snap_to_cylinder( operation ->device, operation ->partition_new, error ) )
|
||||||
{
|
{
|
||||||
operation ->create_description() ;
|
operation ->create_description() ;
|
||||||
|
@ -728,7 +736,7 @@ void Win_GParted::set_valid_operations()
|
||||||
{
|
{
|
||||||
allow_new( false ); allow_delete( false ); allow_resize( false ); allow_copy( false );
|
allow_new( false ); allow_delete( false ); allow_resize( false ); allow_copy( false );
|
||||||
allow_paste( false ); allow_format( false ); allow_toggle_swap_mount_state( false ) ;
|
allow_paste( false ); allow_format( false ); allow_toggle_swap_mount_state( false ) ;
|
||||||
allow_manage_flags( false ) ; allow_info( false ) ;
|
allow_manage_flags( false ) ; allow_check( false ) ; allow_info( false ) ;
|
||||||
|
|
||||||
dynamic_cast<Gtk::Label*>( menu_partition .items()[ MENU_TOGGLE_MOUNT_SWAP ] .get_child() )
|
dynamic_cast<Gtk::Label*>( menu_partition .items()[ MENU_TOGGLE_MOUNT_SWAP ] .get_child() )
|
||||||
->set_label( _("_Unmount") ) ;
|
->set_label( _("_Unmount") ) ;
|
||||||
|
@ -851,6 +859,10 @@ void Win_GParted::set_valid_operations()
|
||||||
selected_partition .status == GParted::STAT_REAL &&
|
selected_partition .status == GParted::STAT_REAL &&
|
||||||
copied_partition != selected_partition )
|
copied_partition != selected_partition )
|
||||||
allow_paste( true ) ;
|
allow_paste( true ) ;
|
||||||
|
|
||||||
|
//see if we can somehow check/repair this filesystem....
|
||||||
|
if ( fs .check && selected_partition .status == GParted::STAT_REAL )
|
||||||
|
allow_check( true ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1749,9 +1761,18 @@ void Win_GParted::activate_manage_flags()
|
||||||
menu_gparted_refresh_devices() ;
|
menu_gparted_refresh_devices() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Win_GParted::activate_check()
|
||||||
|
{
|
||||||
|
Operation *operation = new OperationCheck( devices[ current_device ], selected_partition ) ;
|
||||||
|
|
||||||
|
operation ->icon = render_icon( Gtk::Stock::EXECUTE, Gtk::ICON_SIZE_MENU );
|
||||||
|
|
||||||
|
Add_Operation( operation ) ;
|
||||||
|
}
|
||||||
|
|
||||||
void Win_GParted::activate_undo()
|
void Win_GParted::activate_undo()
|
||||||
{
|
{
|
||||||
//when undoing an creation it's safe to decrease the newcount by one
|
//when undoing a creation it's safe to decrease the newcount by one
|
||||||
if ( operations .back() ->type == OPERATION_CREATE )
|
if ( operations .back() ->type == OPERATION_CREATE )
|
||||||
new_count-- ;
|
new_count-- ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue